#include #include #include #include #include #include #include #include "utils.h" #define PAGE_SIZE 4096 #define MAP_FILEPATH "/tmp/ex-mmap" int main(int argc, char *argv[]) { int fd = open(MAP_FILEPATH, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR); exit_if(fd == -1, MAP_FILEPATH); exit_if(ftruncate(fd, PAGE_SIZE) == -1, "Can't extend file"); char *some_array = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED, fd, 0); exit_if(some_array == MAP_FAILED, "Map failed"); close(fd); // Once attached the fd is useless printf("Mapped region is %p\n", some_array); for (int i = 0; i < PAGE_SIZE; i++) some_array[i] = i % 10 + '0'; exit_if( munmap(some_array, PAGE_SIZE) == -1, "Unmap failed"); return 0; }