跳轉到內容

C 程式設計/POSIX 參考/unistd.h

來自華夏公益教科書,開放的書籍,為開放的世界

在 C 程式語言中,unistd.h 是一個頭檔案,它提供了對 POSIX 作業系統 API 的訪問。它由 POSIX.1 標準定義,是單一 Unix 規範的基礎,因此應該在任何符合(或準符合)的 operating system/compiler (所有官方版本的 Unix,包括 Mac OS X、Linux 等) 中可用。

在類 Unix 系統中,unistd.h 定義的介面通常主要由系統呼叫包裝函式組成,例如 forkpipe 和 I/O 原語(readwriteclose 等)。

像 Cygwin 和 MinGW 這樣的 Unix 相容層也提供了它們自己的 unistd.h 版本。事實上,這些系統提供了它以及翻譯庫,這些庫根據 Win32 函式實現其功能。例如,在 Cygwin 中,可以在 /usr/include 中找到一個頭檔案,它在 /usr/include/sys 中包含了相同名稱的檔案。並非所有內容都定義在其中,但一些定義是透過對 GNU C 標準庫標頭檔案(如 stddef.h)的引用來完成的,這些標頭檔案提供了 size_t 型別以及更多內容。因此,unistd.h 只是一個通用的自適應層,它可能基於已經存在的系統和編譯器特定的定義。這具有沒有可能併發的一組定義的標頭檔案的普遍優勢,而是一個建立在同一個根上的標頭檔案,因此在組合使用情況下會引起更少的關注。

華夏公益教科書