OS X の sem_init 質問する

OS X の sem_init 質問する

私は、pthread およびセマフォ ライブラリを使用するコードに取り組んでいます。このsem_init関数は私の Ubuntu マシンでは正常に動作しますが、OS X ではsem_initまったく機能しません。ライブラリに問題があるのでしょうか、それとも別の方法があるのでしょうか。これは私がテストに使用しているコードです。

sem_t sem1;
sem_t sem2;
sem_t sem3;
sem_t sem4;
sem_t sem5;
sem_t sem6;

sem_init(&sem1, 1, 1);
sem_init(&sem2, 1, 2);
sem_init(&sem3, 1, 3);
sem_init(&sem4, 1, 4);
sem_init(&sem5, 1, 5);
sem_init(&sem6, 1, 6);

値はランダムな数値のように見え、sem_init呼び出し後も変化しません。

ベストアンサー1

名前なしセマフォはサポートされていないため、名前付きセマフォを使用する必要があります。

名前なしセマフォの代わりに名前付きセマフォを使用するには、sem_openの代わりにを使用しsem_init、の代わりにsem_closeと を使用します。sem_unlinksem_destroy

おすすめ記事