私は、IPCと共有メモリを中心とした大学の割り当てに取り組んでいます。問題は、Cの完全な騒ぎのように、私は何時間も私のアプリ(明らかにshmget
とshmat
を使用しています)を喜んでテストしています。あなたはおそらく推測することができますが、私は自分自身の後にきれいにされていないし、私はshmget
がもうリソースを割り当てることができないと仮定しているので、私は私のアプリを実行することはできません。OSXのCで共有メモリを管理する
私の質問は:OSXを再起動せずにこのリソースを元に戻すにはどうしたらいいですか?GUIツールや、作成しているこの共有メモリを監視/管理するために使用できるものはありますか?
これは実際には本当に便利ですが、それでもやっていないのであれば、ターミナルなどで共有メモリをすべて解放できますか? – Ash
私はこれを行うべきであるコードスニペットでアップデートを投稿しました。私はMacOS Xのボックスではないので、私はあなたのためにこれを行うコマンドを確認することはできません。 'man shmget'などを試してみて、' SEE ALSO'セクションを見てください。 –
ok rad、ありがとうございます。あなたの提案については、 'shmdt(shm_id);を呼び出すときに私の使用法を訂正しています.shm_idは、もともと' shmget() 'を呼び出したときのintです。もし私がプロセスをフォークしたら、shmgetリファレンスもクローン化されます(フォークされたプロセスが 'shmdt()'を呼び出すとOSはもう一方からメモリを破壊しません) – Ash