我在Cygwin下的POSIX信号灯有问题,我尝试了以下方法:
$ semtool c 1
Attempting to create new semaphore set with 1 members
Bad system call
$
上面的semtool试图创建(通过semget、semctl等系统调用)一个新的信号量。但是它不起作用:错误的系统调用。
同样,使用semget()的极简主义测试C程序也无法输出相同的消息:错误的系统调用。
我在谷歌上搜索过:安装了cygserver,将环境变量CYGWIN定义为“server”,但没有任何帮助。我的cygwin版本非常新:
$ cygcheck -c | grep cygwin
base-cygwin 3.0-1 OK
cygwin 1.7.9-1 OK
cygwin-doc 1.7-1 OK
cygwin-x-doc 1.1.1-1 OK
$
有什么想法/暗示可能还缺少什么吗?
现在尝试使用附加导出:
$ export CYGWIN=server
服务正在运行
$ net start | grep -i cyg
CYGWIN cygserver
$
不再出现错误:
$ semtool c 1
Attempting to create new semaphore set with 1 members
$
现在似乎起作用了!