3

cat /proc/[pid]/mapsそのアドレス空間に関する情報を読んだ。そこで、独自のアドレス空間を出力するプログラムを書きたいと思います。

私のプログラムはこれです。

  pid_t pid;
  int fd;
  char *buf;

  pid = getpid();

  fd = open("/proc/????/maps", O_RDONLY);

PID を取得していますが、ファイルを開くのに役立ちません。pidを文字列に変換して呼び出しpid_tに追加する方法は?open

または、ファイルを開く他の方法はありますか?

4

2 に答える 2

9

All modern procfs systems implement "/proc/self/" for the running process. Just

fd = open("/proc/self/maps", O_RDONLY);

If you still wish to create the path string yourself then you have to use sprintf

char filename[128];
sprintf(filename, "/proc/%d/maps", getpid());
fd = open(filename, O_RDONLY);
于 2013-10-24T14:12:59.117 に答える