我阅读cat /proc/[pid]/maps
给出了有关其地址空间的信息。
所以我想写一个打印自己地址空间的程序。
我的节目就是这个;
pid_t pid;
int fd;
char *buf;
pid = getpid();
fd = open("/proc/????/maps", O_RDONLY);
我正在获取PID,但它无法帮助我打开文件。
如何将pid从pid_t
转换为字符串并将其添加到open
来电?
或者还有其他方法可以打开文件吗?
答案 0 :(得分:8)
所有现代procfs系统都为正在运行的进程实现"/proc/self/"
。刚
fd = open("/proc/self/maps", O_RDONLY);
如果您仍希望自己创建路径字符串,则必须使用sprintf
char filename[128];
sprintf(filename, "/proc/%d/maps", getpid());
fd = open(filename, O_RDONLY);
答案 1 :(得分:0)