1

作成した C プログラムがあり、そのメモリ マップを作成しようとしています。

プロセスの環境の開始アドレスと終了アドレス (仮想メモリ内) を画面に出力するにはどうすればよいですか。

プログラムは常に Linux で実行されますが、それが違いを生むかどうかはわかりませんが、移植性は必要ありません。

できれば開始と終了の 16 進数のアドレスを教えてくれるものを探しています。

4

3 に答える 3

1

あなたの要件に従って、PIDがわかっている場合、特定のプロセスのメモリマップを取得できると思います。詳細については、コマンド「pmap」を使用してくださいhttp://linux.die.net/man/1/pmap

&あなたのプログラムでそれを印刷したい場合は、関数getpid()の助けを借りて pid を取得してみてください。次に、system() 呼び出しを使用して pmap コマンドを実行します。

于 2013-09-20T04:56:36.623 に答える
0

プロセスのプロセス識別子の値である/proc/[PID]/mapsファイルの内容を簡単に出力できます (この値が何であるかを調べるために呼び出します)。[PID]getpid()

于 2013-09-20T04:55:20.683 に答える