微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Cygwin下使用System V信号量:错误的系统调用

如何解决在Cygwin下使用System V信号量:错误的系统调用

| 我在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
$
似乎现在工作!     

解决方法

cygserver正在运行吗? 更新:这在Windows 7下对我有用: 运行cygserver-config(以管理员身份),在出现提示时回答“是”。 启动“ CYGWIN cygserver”服务。 在cygwin shell中执行\“ export CYGWIN = server \”。 此时,我可以运行semtool来创建/锁定/解锁信号量以及semstat来显示其状态。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。