为什么NetBSD系统调用手册提到标准C库?

为什么NetBSD系统调用手册提到标准C库?

我正在查看 NetBSD 9 上的 man(2) 页面,并且发现所有文档(write(2)、open(2)、pipe(2))都在顶部提到了标准 C 库。

我的理解是系统调用独立于库函数(例如 libc 中的库函数)。我在 Linux 系统调用手册中没有看到类似的提及。这是否意味着调用这些方法是调用 libc 中包含的某些包装函数,而不是直接调用内核函数?这是普遍事实吗,还是只是 NetBSD 的一个特性?

答案1

open()例如, 是一个 C 标准库函数。

执行取决于操作系统。在类 Unix 系统上,它通常作为系统调用来实现。

因此应用程序调用open(),而 则调用syscall()类 Unix 系统。

C 已被移植到很多平台,但并非所有平台都具有系统调用功能。他们的实现是不同的。

所以我们说类似的东西open()是标准 C 库的一部分,因为该库从底层操作系统实现中抽象出来。

相关内容