プロセスが終了すると、共有メモリ領域はどうなりますか?

プロセスが終了すると、共有メモリ領域はどうなりますか?

shmget()図のように作成された共有メモリを使用すると、何が起こるかを知りたいです。http://www.csl.mtu.edu/cs4411.ck/www/NOTES/process/shm/example-2.htmlプロセスが終了または終了したら?その領域は解放されていますか、それとも存在しますか?

ベストアンサー1

問題を処理する方法を知ることは、アプリケーションの作成者の役割です。

多くのアプリケーションは次のように書かれています。

shmctl(id, IPC_RMID, 0);

共有メモリセグメントの使用を停止した後。

この場合、プログラムが予期せず終了すると(たとえば、コアダンプが発生した場合)、メモリセグメントが保持されます。

ただし、メモリセグメントを接続した後にプログラムがshmctl(id, IPC_RMID, 0);直接呼び出されると、カーネルはすべての種類のプログラムのシャットダウンに必要な管理タスクを実行します。

おすすめ記事