Sourceware Bugzilla – Bug 6886
some imperfections in description of mmap()
Last modified: 2008-09-14 22:07:17 UTC
Hi again, everyone,
today i have been reading manual section about mmap(),
and some things are not completely clear to me,
so, unless pebcak, i thought you might like to know about them :
mmap description does not say what value of parameter length should be :
it gives impression that it can be
anything that is not larger than multiple of pagesize that is next higher
than size of file ;
is this correct ?
mmap() description does not mention what happens if writing beyond end of file,
though i seem to remember reading somewhere that it causes a segfault ?
mmap() description does not mention what happens if write to address that is
beyond end of filecontent but inside mapped size ; will it segfault ?
if a file is mmapped PROT_SHARED, and another process makes file smaller,
will my process segfault when writing beyond new end of file ?
is it possible to guard against this by locking file ?
munmap description gives impression that if you do munmap it is not necessary
to use msync,
but does not explicitly say so. is this indeed so ?
munmap description says
"If LENGTH is not an even number of pages, it will be rounded up."
is this correct or should it say 'integer number of pages' ?
munmap description says "This function is only available on a few systems.",
but does not mention whether this includes GNU.
also, _POSIX_MAPPED_FILES is mentioned near description of ftruncate,
but there is no mention of whether this is defined on GNU.
whole mmap section does not contain a link to description of enlarging mmapped
that is present in libc doc near description of ftruncate.
Where sysconf(_SC_PAGESIZE) is shown in description of mmap(),
i think it would be nice if it were mentioned that it is declared in unistd.h .
Thanks for reading, and have a nice day :-)