1

shmget / shmat / shmdtを使用して共有メモリセグメントを作成、接続、管理するレガシーコードがいくつかあります。

コードを含むアプリがクラッシュし、セグメントがメモリに残ることがあります。コードは同じセグメントキーを再利用してそれらに再接続しますが、毎回異なる共有メモリサイズを使用し、このために接続できないという問題があります。

私の質問は:

1)接続時に共有メモリサイズを変更することはできますか?

2)そうでない場合、共有メモリセグメントに接続して(サイズがわからない場合でも)、それを消去する(後で新しいセグメントを再作成するために)にはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

shmctlを使用して、独自のサイズの 1 つを削除および作成できます。shmget できない場合、レガシー コードは既存の共有メモリを使用しようとするのでしょうか?

于 2010-02-14T15:47:36.473 に答える