Man

為什麼 NetBSD 系統呼叫手冊提到標準 C 庫?

  • January 16, 2021

我正在查看 NetBSD 9 上的 man(2) 頁面,並且看到所有文件(write(2)、open(2)、pipe(2))都在頂部提到了標準 C 庫。

我的理解是系統呼叫獨立於庫函式(例如 libc 中的函式)。我在 Linux 系統呼叫手冊中沒有看到類似的提及。這是否意味著呼叫這些方法是呼叫 libc 中包含的一些包裝函式,而不是直接呼叫核心函式?這通常是正確的,還是只是 NetBSD 的一個特性?

open(),例如,是一個 C 標準庫函式。

實現取決於作業系統。在類 Unix 系統上,它通常作為系統呼叫實現。

所以應用程序呼叫open(), 並且呼叫syscall()類 Unix 系統。

C 已被移植到很多平台,但並非所有平台都具有系統呼叫功能。它們的實現方式不同。

所以我們說類似的東西open()是標準 C 庫的一部分,因為庫是從底層作業系統實現中抽像出來的。

引用自:https://unix.stackexchange.com/questions/629395