跳转到内容

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 只是一个通用的自适应层,它可能基于已经存在的系统和编译器特定的定义。这具有没有可能并发的一组定义的头文件的普遍优势,而是一个建立在同一个根上的头文件,因此在组合使用情况下会引起更少的关注。

华夏公益教科书