在linux中函数调用如read(),write()实际系统调用吗?

Tus*_*dar 8 c c++ linux

我一直用C/C++编写程序,使用Linux API并进行系统调用,如fork(),read(),write()等.现在,我开始怀疑这些库函数是否实际上是系统调用,或者它们是某种包装函数.

当程序调用write()时会发生什么?这个函数如何与内核交互?如果这是一个包装,那么我们为什么需要呢?

wRA*_*RAR 6

所有这些函数都是真正的用户空间函数,libc.so因为二进制文件是链接的.但是它们中的大多数只是系统调用的微小包装器,它们是用户空间和内核之间的接口(另请参阅syscall(2)).

请注意,fmod(3)除了调用内核(如execl(3))之外,纯粹用户空间(如)或在用户空间中执行某些操作的函数在第3节中有自己的联机帮助,而只调用内核的函数(如read(2))在第2部分中有这些函数.

  • @EJP有人可能会认为第3节中的条目不会调用内核.否则他们必须在第2部分,因为答案目前陈述"调用内核的函数在第2部分中有它们". (2认同)