0
if((sem_init(sem, 1, 1)) == 1) perror("error initiating sem");

如果我包含这行代码,我的程序只会启动和退出。我刚开始学习如何使用信号量。我正在使用 cygwin,当这一行被注释掉 printf 的 ABOVE 这个打印到控制台时,但是当包含这个时,什么也没有发生。

我做了以下让cygserver运行 -

CYGWIN=server
ran /bin/cygserver-config
ran /usr/sbin/cygserver

对于配置它说 cygserver 已经在运行 而对于 sygserver 它说-

initailaizing complete
failed to created named pipe: is the daemon already running?
fatal error on IPC transport: closing down

有任何想法吗?

4

1 回答 1

1

我发现出了什么问题。在为数据分配任何内存之前,我正在使用 data(struct) = shmat() 。出于某种原因,这阻止了我的“printf”工作。

于 2012-09-24T21:35:34.937 回答