查看 /proc/pid/maps 中的内存映射时,我们可以看到不同长度的地址:
00400000-0042e000 r-xp 00000000 fb:01 268953 /bin/nano
0062e000-0062f000 r--p 0002e000 fb:01 268953 /bin/nano
0062f000-00630000 rw-p 0002f000 fb:01 268953 /bin/nano
0081e000-00906000 rw-p 00000000 00:00 0 [heap]
7f8313e5c000-7f8314109000 rw-p 00000000 fb:01 2399989 /usr/share/misc/magic.mgc
7f8314109000-7f83142ce000 r--p 00000000 fb:01 2759354 /usr/lib64/locale/locale-archive
7f83142ce000-7f83142d1000 r-xp 00000000 fb:01 1457046 /lib64/libdl-2.17.so
7f83142d1000-7f83144d0000 ---p 00003000 fb:01 1457046 /lib64/libdl-2.17.so
Run Code Online (Sandbox Code Playgroud)
我们有 8 位长度的地址,例如:
还有 12 位长度的(最后 3 位总是 0):
为什么这些地址的格式是这样的,我可以将它们转换为 8 位长度吗?