共有メモリを要求し、それをプログラムのメイン プロセスにアタッチしたとします。
このプログラムは、いくつかのプロセスを作成します。shmatのマニュアルが言うように
fork(2) の後、子は接続された共有メモリ セグメントを継承します。
したがって、共有メモリを子プロセスにアタッチする必要はありません。
しかし、それを切り離すのはどうですか?子のコードでもそれを行う必要がありますか?
または、メインプロセスで共有メモリを切り離して破棄するだけで十分ですか?
共有メモリを要求し、それをプログラムのメイン プロセスにアタッチしたとします。
このプログラムは、いくつかのプロセスを作成します。shmatのマニュアルが言うように
fork(2) の後、子は接続された共有メモリ セグメントを継承します。
したがって、共有メモリを子プロセスにアタッチする必要はありません。
しかし、それを切り離すのはどうですか?子のコードでもそれを行う必要がありますか?
または、メインプロセスで共有メモリを切り離して破棄するだけで十分ですか?
それは本当にあなたがその後何をしているかに依存します. execve
ただし、またはそのいとこのいずれかを呼び出している場合は、共有メモリ セグメントが切り離されます。