У меня есть следующий код,
...
char* seg = mmap(0, ...)
printf("seg=%x\n", seg);
...
Программа печатает с seg=b7ffd000
. В то время как в GDB (для того же выполнения), при использовании p/x seg
, он печатает $2 = 0x0
. Я запутался здесь. Разве это не тот же вар seg
? почему значения разные.
PS: в mmap
первый аргумент - это предпочтительно адрес отображаемой памяти, а возвращаемое значение - фактический адрес отображенной памяти.