我有興趣在共享內存中使用信號量(使用semaphore_create(task, sem, policy, value)
從mach/semaphore.h
創建)來同步Mac OS中的兩個進程。Mach信號量是否在進程間的共享內存中工作?
我知道在Linux上使用sem_init(sem, pshared, value)
,pshared
必須是在這種情況下不爲零,但我無法找到和信息在Mac(其中sem_init
未實現),我真的不希望使用命名信號作爲我需要創造很多。
我在一個最小的例子上進行了實驗,它似乎沒有工作,所以我想知道如果我做錯了什麼或它不工作。我也接受其他進程間鎖定替代方案。
[Here](http://pkaudio.blogspot.de/2010/05/mac-os-x-no -timed-semaphore-waits.html)是一篇關於如何在進程之間共享Mach信號量的文章。請注意,您應該儘量避免使用Mach,因爲它在userland中的用法已被棄用。 –