I've read through the man pages on mmap, munmap, and msync, and I still
am not sure that I'm using the correct flags. Actually, I'm not even
completely sure that mmap is the way to go.
I'm creating a queue-like data structure that uses a fixed amount of
heap space. When it fills up, it must dump itself to a file, and then
it can consider itself "cleared", and continue adding elements. If a
remove() call is made on the structure, and it's currently empty but has
previously dumped to disk, it loads the data from disk, and then
continues. Also, this is only a single-threaded application.
I thought that I should use the MAP_PRIVATE flag when I map the file,
then just munmap() then call close(fd) when I dump it, but that's not
working. I'm just getting empty files.
Is mmap even the way to go, or should I just be using write() and read()?