Memory map a file for reading
#include <mmap.h>
char* mmap_read(const char* filename,size_t* filesize);
mmap_read opens filename for reading, maps the whole file into memory, closes the file, writes the length of the file to filesize and returns a pointer to the mapped file.
The file is unmapped by the operating system if the process terminates. It can also be manually unmapped by calling munmap from <sys/mman.h>.
If the file could not be opened or mapped, (void*)0 is returned.