#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
// Bypass -Werror on ideone.
#pragma GCC diagnostic warning "-Wnonnull"
#pragma GCC diagnostic warning "-Wformat"
static void look_ma_i_have_page_zero(void)
{
if (mmap(NULL, 4096, PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS | MAP_FIXED, -1, 0) == MAP_FAILED) {
}
}
int main(void)
{
look_ma_i_have_page_zero();
// Теперь можно так:
// Или так.
int *ptr = NULL;
printf("Reading at %p: %i\n", ptr
, *ptr
); }
I2RlZmluZSBfR05VX1NPVVJDRQojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxzeXMvbW1hbi5oPgoKLy8gQnlwYXNzIC1XZXJyb3Igb24gaWRlb25lLgojcHJhZ21hIEdDQyBkaWFnbm9zdGljIHdhcm5pbmcgIi1Xbm9ubnVsbCIKI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyB3YXJuaW5nICItV2Zvcm1hdCIKCnN0YXRpYyB2b2lkIGxvb2tfbWFfaV9oYXZlX3BhZ2VfemVybyh2b2lkKQp7CiAgICBpZiAobW1hcChOVUxMLCA0MDk2LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAogICAgICAgICAgICBNQVBfU0hBUkVEIHwgTUFQX0FOT05ZTU9VUyB8IE1BUF9GSVhFRCwgLTEsIDApID09IE1BUF9GQUlMRUQpIHsKICAgICAgICBwZXJyb3IoIm1tYXAoKSBmYWlsZWQiKTsKICAgICAgICBleGl0KDEpOwogICAgfQp9CgppbnQgbWFpbih2b2lkKQp7CiAgICBsb29rX21hX2lfaGF2ZV9wYWdlX3plcm8oKTsKICAgIAogICAgLy8g0KLQtdC/0LXRgNGMINC80L7QttC90L4g0YLQsNC6OgogICAgc3RyY3B5KE5VTEwsICJzdXAgL3ByLyIpOwogICAgcHJpbnRmKCIlc1xuIiwgTlVMTCk7CiAgICAKICAgIC8vINCY0LvQuCDRgtCw0LouCiAgICBpbnQgKnB0ciA9IE5VTEw7CiAgICBwcmludGYoIlJlYWRpbmcgYXQgJXA6ICVpXG4iLCBwdHIsICpwdHIpOwp9Cg==