マルチスレッドのプログラミング

名前付きセマフォーと名前なしセマフォー

POSIX セマフォーは、名前付きの場合と名前なしの場合があります。名前なしセマフォーは、プロセスメモリー内で割り当てられ、初期化されます。名前なしセマフォーは、割り当てと初期化の状態によっては、複数のプロセスで使用できます。名前なしセマフォーは、fork() から継承された専用セマフォーであるか、またはその割り当てとマッピングが行われた通常ファイルのアクセス保護によって保護されたセマフォーです。

名前付きセマフォーはプロセス間で共有されるセマフォーに似ていますが、pshared 値ではなくパス名で参照される点が異なります。名前付きセマフォーは、複数のプロセスによる共有が可能です。名前付きセマフォーは、固有のユーザー ID、グループ ID、および保護モードを持ちます。

sem_opensem_getvaluesem_closesem_unlink の各関数が、名前付きセマフォーを開く、取得する、閉じる、削除するのにそれぞれ使用できます。sem_open では、ファイルシステムの名前空間で名前が定義されたセマフォーを生成できます。

名前付きセマフォーの詳細は、sem_opensem_getvaluesem_closesem_unlink のマニュアルページを参照してください。