> printf("%p (%s)\n", addr, strerror(errno));
By the way this example code is wrong.errno is only valid for the previous system call after verification of the return value == -1, or for this specific system call (which on sizeof(void *) > sizeof(int) systems returns a full value) == MAP_FAILED
