char* mmap_shared(const char* filename,size_t* filesize);
mmap_shared opens filename for reading and writing, 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 mapped shared. Changes done to the mapped region are written to disk and are visible to other processes reading from the file or mapping the same file into memory.
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>.
To write changes to disk immediately, you can use msync from <sys/mman.h>.
If the file could not be opened or mapped, (void*)0 is returned.