toge's diary

コンピュータ関連の趣味をつらつらと。

[C++]プロセスのメモリ使用量を調べる

結局/procを弄ることにする。

  1. fork()して子プロセス側はexec()してターゲットを実行する
  2. 親プロセスは子プロセスのpidを調べ、該当する/proc/(pid)/statmを開く
  3. 一行読む
  4. 空白で区切って7個の数値を読む
  5. getpagesize()した値をかけて表示する
  6. /proc/(pid)/statmを閉じる
  7. 数秒sleepした後に3.に戻る

なんとなく正しい値になってそう。
getrusage()のメモリ情報 よりは詳しい情報が得られますね。
面倒くさがらずに/proc/(pid)/statを見ればより詳細な情報が得られそうですね。
いまのところやるつもりはないですが。