Linux系统mmap(2)和posix mmap(3)函数之间有什么区别?浏览源代码时如何区分使用哪一个?
Linux系统mmap(2)和posix mmap(3)函数之间有什么区别?
第2节介绍了系统调用。第3节介绍了功能。因此,mmap(2)
根本不是函数,它是系统调用。
在浏览源代码时如何区分使用哪个?
如果是函数调用,则为mmap(3)
。如果是系统调用,则为mmap(2)
。由于不可能从C移植可调用的系统调用,因此系统调用总是会有某种宏或包装函数。
此外,除非您正在阅读C编译器的运行时库的源代码(例如GCC)或POSIX库的源代码(例如Glibc,Dietlibc,µClibc或musl),否则您极不可能将在代码中找到任何系统调用。