4

semaphore_create(task, sem, policy, value)fromを使用して作成されたセマフォをmach/semaphore.h共有メモリで使用して、Mac OS で 2 つのプロセスを同期することに興味があります。

Linux では を使用して、この場合ゼロ以外にする必要があることはわかってsem_init(sem, pshared, value)psharedますが、Mac では情報を見つけることができず (sem_init実装されていない場合)、名前付きセマフォをたくさん作成する必要があるため、実際には使用したくありません。そのうちの。

最小限の例で実験しましたが、うまくいかないようです。何か間違ったことをしたのか、それともうまくいかないのか疑問に思っています。また、他のプロセス間ロックの代替案も受け入れています。

4

2 に答える 2

0

semaphore_create とその仲間に関するドキュメントは次のとおりです: https://developer.apple.com/library/mac/#documentation/Darwin/Conceptual/KernelProgramming/synchronization/synchronization.html

私は Mac を所有していないので、何もテストできませんが、名前のないセマフォが使用できない理由はわかりません。

于 2012-09-14T19:15:12.047 に答える