我一直用C/C++编写程序,使用Linux API并进行系统调用,如fork(),read(),write()等.现在,我开始怀疑这些库函数是否实际上是系统调用,或者它们是某种包装函数.
当程序调用write()时会发生什么?这个函数如何与内核交互?如果这是一个包装,那么我们为什么需要呢?
所有这些函数都是真正的用户空间函数,libc.so因为二进制文件是链接的.但是它们中的大多数只是系统调用的微小包装器,它们是用户空间和内核之间的接口(另请参阅syscall(2)).
请注意,fmod(3)除了调用内核(如execl(3))之外,纯粹用户空间(如)或在用户空间中执行某些操作的函数在第3节中有自己的联机帮助,而只调用内核的函数(如read(2))在第2部分中有这些函数.