Sounds like you don't get it what mmap() actually is.
mmap() is an
alternative way to read/write files. Alternative to fread()/fwrite().
Once a file is mmap()-ed reading and writing to the file is much more convenient than using read()/write()/fread()/fwrite().
You can read/write bytes to the files just by reading/writing
an array of bytes. This is much more easier/convenient than fread()/fwrite() and/or linked lists.
On the downside opening and mmap()-ing the file is little more programming work. Also it may be a little slower than read()/write(), and appending to a file can be a bit troublesome.
So why making your program more complicated and slower by laying a linked list on top of an array which is more convenient than linked list already. And why fread()/fwrite() when you can just read/assign values to an array (which will end up inside the file at the right position)?
Or to put it the other way around: why mmap() a file if you prefer to fread()/fwrite() to it?
Just choose: Either read/write to/from an array (which actually
is the bytes in the file), or fread()/frwite() the "old-fashioned" way.
Here is some example code for reading/writing to a file as an array of bytes.