我試圖讀取存儲器地址從/ 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