Man
為什麼 NetBSD 系統呼叫手冊提到標準 C 庫?
我正在查看 NetBSD 9 上的 man(2) 頁面,並且看到所有文件(write(2)、open(2)、pipe(2))都在頂部提到了標準 C 庫。
我的理解是系統呼叫獨立於庫函式(例如 libc 中的函式)。我在 Linux 系統呼叫手冊中沒有看到類似的提及。這是否意味著呼叫這些方法是呼叫 libc 中包含的一些包裝函式,而不是直接呼叫核心函式?這通常是正確的,還是只是 NetBSD 的一個特性?
open()
,例如,是一個 C 標準庫函式。實現取決於作業系統。在類 Unix 系統上,它通常作為系統呼叫實現。
所以應用程序呼叫
open()
, 並且呼叫syscall()
類 Unix 系統。C 已被移植到很多平台,但並非所有平台都具有系統呼叫功能。它們的實現方式不同。
所以我們說類似的東西
open()
是標準 C 庫的一部分,因為庫是從底層作業系統實現中抽像出來的。