Linux、Unix、および OSX で実行したいコードの変更を検討しています。コードには sem_init の呼び出しがいくつかありますが、pshared 値はゼロに設定されています。UNIXプログラミングに関するRochkindの本を読んだところ、彼は基本的に、共有されていないsem_initはメモリ内のバイナリ方式で動作するため、pthread_mutex_initと同じだと言いました。
問題は、これらの sem_init を pthread_mutex_init に変更したり、sem_open を使用してこのコードのより移植性の高いバージョンを取得したりしても安全でしょうか?
OSX は無名セマフォをサポートしていませんが、他の 2 つのセマフォはサポートしていると思います。私は本当に別のコンパイルフラグを持ちたくありません#ifdef(__APPLE__)
。
ありがとう