C言語でmmap
を使用して明示的に開いていないメモリマップファイルを閉じるにはどうすればよいですか?私はlsof
を使ってメモリマップされたファイルの名前を見ることができます。そして、私はmunmap
を呼び出すことができるように、何とかファイルのアドレスとサイズを取得できるようにしたいと思います。私は/ proc/self/mem /を介してメモリ情報にアクセスできるはずですが、そこから進歩する方法やこれが正しいかどうかは完全にはわかりません。ありがとう。私は明示的に開いていないCのメモリマップされたファイルを閉じるには?
EDIT
私は、デバイス・ファイルへの書き込みライブラリを使用しています。私がしようとしているのは、このデバイスを一時的に物理的に利用できなくなり、プログラムがこれから回復することをシミュレートすることです。デバイスの一部が再利用可能になるのはドライバが再初期化されているためです。モジュールカウントがゼロにならず、カーネルがアンロードを許可しないため、私のプロセスでも参照を維持できません。私はすべてのファイル記述子を識別してこれを閉じることができましたが、lsof
はまだそのデバイスを参照している共有メモリの場所を指しています。私はこれを明示的にオープンしていなかったので、そうしたコードは私にはアクセスできませんでした。私はまだそれを閉じることができる方法を望んでいました。
なぜそれをしたいですか? – fuz
@FUZxxl編集を参照してください。 – John