私は を使用してshmget
おりshmat
、shmctl
それぞれ共有メモリ セグメントを取得および作成し、プロセスのアドレス空間にアタッチして削除します。
プロセスが共有メモリセグメントを切り離して使用できるかどうか疑問に思っています
shmctl(id, IPC_RMID, ...)
1つのプロセスで。
man ページから情報を取得できません。
IPC_RMID
破棄するセグメントをマークします。セグメントが実際に破棄されるのは、最後のプロセスがセグメントを切り離した後 (つまり、shm_nattch
関連付けられた構造体のメンバーshmid_ds
がゼロのとき) だけです。呼び出し元は、所有者または作成者であるか、特権を持っている必要があります。 セグメントが破棄対象としてマークされている場合、によって取得された関連データ構造内のフィールドの (非標準)SHM_DEST
フラグが設定されます。shm_perm.mode
IPC_STAT