加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C程序打印自己的地址空间?

发布时间:2020-12-16 09:48:15 所属栏目:百科 来源:网络整理
导读:我读了cat / proc / [pid] / maps给出了关于它的地址空间的信息. 所以我想编写一个程序来打印自己的地址空间. 我的节目是这样的; pid_t pid; int fd; char *buf; pid = getpid(); fd = open("/proc/????/maps",O_RDONLY); 我正在获取PID,但它无法帮助我打开
我读了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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读