2011-05-24 65 views
2
我在使用Cygwin下POSIX信號量的問題

,我已經試過如下:使用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 
$ 

似乎現在的工作!

+1

關於semget,semctl,這些不是POSIX信號相關的系統調用,而是System-V。只是關於這個問題的一個註釋,它應該是System-V而不是POSIX。 – cygwinner 2011-05-24 16:18:08

回答

0

cygserver是否在運行?

更新:這個工作對我來說在Windows 7下:

  1. 然cygserver-配置(如管理員),出現提示時回答 「是」。
  2. 開始「CYGWIN cygserver」服務。
  3. 在cygwin shell中執行「export CYGWIN = server」。

在這一點上,我可以運行semtool來創建/鎖定/解鎖信號量以及semstat以顯示其狀態。

+0

是的,它正在運行。我試過兩臺Windows機器,W2K和W7,結果相同。謝謝你的回答,非常感謝! – cygwinner 2011-05-24 12:20:02

+0

我正在使用cygwin 1.5.25-15順便說一句。 – 2011-05-24 12:42:03

+0

感謝您的幫助和支持蘭斯! – cygwinner 2011-05-24 13:16:27