如何验证指定的内存地址已分配

时间:2018-10-08 20:33:46

标签: c memory ubuntu-16.04

我正在使用Ubuntu 16.04 VM

我有一个C程序,该程序接受一个参数,该参数应为0-7ffffffffffffffff之间的十六进制数。

如何检查指定的内存地址是否在程序的虚拟内存中分配并访问该地址的单个字节的内存?

编辑: 这样我就可以通过以下方式查看映射内容:

FILE *fptr = fopen("/proc/self/maps", "r");
c = fgetc(fptr);
while (c != EOF){
   print("%c\n", c);
   c = fgetc(fptr);
}

,我正在使用以下功能: 无效* mmap(无效* addr,size_t长度,int prot,int标志,int fd,off_t偏移量) 返回指向已分配区域的指针

但是,当我尝试使用命令行参数时,我键入cast(void *)addr,并且当我假设它已经处于十六进制且不知道如何避免时,它将其更改为十六进制值它不必要地转换。

0 个答案:

没有答案