gpt4 book ai didi

c++ - 像 read() 、 write() 这样的函数调用是 linux 中的实际系统调用吗?

转载 作者:IT王子 更新时间:2023-10-29 00:20:44 26 4
gpt4 key购买 nike

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

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

最佳答案

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

请注意,纯用户空间的函数(如 fmod(3))或在用户空间中除了调用内核之外还做一些事情(如 execl(3))在第 3 节中有它们的联机帮助页,而仅调用内核的函数(如 read(2))在第 2 节中有它们。

关于c++ - 像 read() 、 write() 这样的函数调用是 linux 中的实际系统调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35679999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com