POSIX プロセス間通信は、System V プロセス間通信の変形です。これは Solaris 2.6 で新しく追加されました。System V オブジェクトと同様に、POSIX IPC オブジェクトは、所有者、所有者のグループ、およびその他に読み取り権と書き込み権があります (実行権はありません)。POSIX IPC オブジェクトの所有者が、そのオブジェクトの所有者を変更する方法はありません。
System V IPC インタフェースとは異なり、POSIX IPC インタフェースはすべてマルチスレッドに対して安全です。
POSIX メッセージ待ち行列インタフェースは、次のとおりです。
mq_open(3R) |
名前付きメッセージ待ち行列に接続する。指定によっては作成する。 |
mq_close(3R) |
開いているメッセージ待ち行列への接続を終了する。 |
mq_unlink(3R) |
開いているメッセージ待ち行列への接続を終了し、最後のプロセスが待ち行列を閉じるときに待ち行列を削除する。 |
mq_send(3R) |
メッセージを待ち行列に入れる。 |
mq_receive(3R) |
最も古い最高優先順位メッセージを待ち行列から受け取る(削除する)。 |
mq_notify(3R) |
メッセージが待ち行列で使用できることをプロセスまたはスレッドに通知する。 |
mq_setattr(3R) mq_getattr(3R) |
メッセージ待ち行列属性を設定または取得する。 |
POSIX セマフォは、System V セマフォより軽量です。POSIX セマフォ構造体は 25 個までのセマフォの配列ではなく、1 つのセマフォだけを定義します。
POSIX セマフォインタフェースは、次のとおりです。
sem_open(3R) |
名前付きセマフォに接続する。指定によっては作成する。 |
sem_init(3R) |
名前なしセマフォを初期化する。 |
sem_close(3R) |
開いているセマフォへの接続を終了する。 |
sem_unlink(3R) |
開いているセマフォへの接続を終了し、最後のプロセスがセマフォを閉じるときにセマフォを削除する。 |
sem_destroy(3R) |
sem_init(3R) で初期化された名前なしセマフォを破棄する。 |
sem_getvalue(3R) |
セマフォの値を指定された整数にコピーする。 |
sem_wait(3R) sem_trywait(3R) |
セマフォが他のプロセスによって保持されている場合に、ブロッキングするかエラーを戻す。 |
sem_post(3R) |
セマフォのカウントを増やす。 |
POSIX 共用メモリは、実際にはマッピングされているメモリの変形です (詳細は、「マッピングの作成と使用」を参照) してください。主な違いは、(open(2) を呼び出す代わりに) shm_open(3R) を使用して共用メモリオブジェクトを開いて、(オブジェクトを削除しない close(2) を呼び出す代わりに) shm_unlink(3R) を使用してオブジェクトを閉じて削除することです。shm_open(3R) のオプションは、open(2) で提供されているオプションの数よりかなり少なくなっています。