#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <errno.h>
#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);
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;
}