我试图读取存储器地址从/ proc //地图和我使用下面的代码保持前导零ç
for (ptr = NULL; getline(&ptr, &n, file) > 0;) {
if (ptr[0]== ' ') { continue; }
sscanf(ptr, "%lx-%lx", &r0, &r1);
printf("r0: %lx, r1: %lx\n", r0, r1); }
假设文件指向的/ proc //映射& PTR是行指针。但是当你考虑一个地图文件时,它不会读取适当的文件。它降低零点,它不会选择零点。所以考虑:
00110000-0r-xp 00000000 08:01 129925 /lib/i686/cmov/libnsl-2.11.1.so
通过我的程序运行后:
r0: 110000, r1: 123000
我如何保持前导零输出是这样的:
r0: 00110000, r1: 0
编辑:printf的是进行调试。
这是我做的R1以后
mem = mmap(NULL, 4096, PROT_READ, MAP_PRIVATE, mem_fd, r1)
您是否需要r0和r1作为数字 - 也许您可以将数据视为字符串 – Mark 2011-12-16 19:14:22
这看起来像Python伪装成C :) – pmg 2011-12-16 19:22:43