mmap(3)应该是
POSIX function.它应该在所有方面提供POSIX强制要求的语义,即使它与Linux“本机”的做法不同. mmap(2)是系统
调用,提供了Linus认为重要的所有铃声和口哨声.当然,C库
函数是使用系统
调用实现的.
要从字面上调用系统调用(绕过C库),可以使用< sys / syscall.h>.
mmap(3)的实际实现可以在C library中找到.正如你所看到的,它通常直接将控制转移到mmap(2),除非在编译时(glibc),mmap2(2)被选为“后端”.