Маны обещают магию, что оно по мере необходимости будет само ммапиться. Но магия не работает и процесс сегфолтится. Чяднт?
#include <stdio.h>
#include <sys/mman.h>
int main(void)
{
unsigned char *foo = mmap(NULL, 0x2000, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS | MAP_GROWSDOWN | MAP_STACK,
-1, 0);
if (foo == MAP_FAILED) {
perror("mmap fail");
return 1;
}
printf("%p\n", foo);
puts("press enter to continue");
getchar();
foo[0] = 0x42;
foo[1] = 0x42;
puts("press enter to continue");
getchar();
foo[-1] = 0x42;
return 0;
}