C程序打印自己的地址空间?
作者:互联网
我读了cat / proc / [pid] / maps给出了关于它的地址空间的信息.
所以我想编写一个程序来打印自己的地址空间.
我的节目是这样的;
pid_t pid;
int fd;
char *buf;
pid = getpid();
fd = open("/proc/????/maps", O_RDONLY);
我正在获取PID,但它无法帮助我打开文件.
如何将pid从pid_t转换为字符串并将其添加到打开调用?
或者有没有其他方法来打开文件?
解决方法:
所有现代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);
标签:c-3,systems-programming,linux,proc 来源: https://codeday.me/bug/20190728/1565145.html