C 编程/POSIX 参考/unistd.h
外观
在 C 编程语言中,unistd.h
是一个头文件,它提供了对 POSIX 操作系统 API 的访问。它由 POSIX.1 标准定义,是单一 Unix 规范的基础,因此应该在任何符合(或准符合)的 operating system/compiler (所有官方版本的 Unix,包括 Mac OS X、Linux 等) 中可用。
在类 Unix 系统中,unistd.h
定义的接口通常主要由系统调用包装函数组成,例如 fork
、pipe
和 I/O 原语(read
、write
、close
等)。
像 Cygwin 和 MinGW 这样的 Unix 兼容层也提供了它们自己的 unistd.h 版本。事实上,这些系统提供了它以及翻译库,这些库根据 Win32 函数实现其功能。例如,在 Cygwin 中,可以在 /usr/include
中找到一个头文件,它在 /usr/include/sys
中包含了相同名称的文件。并非所有内容都定义在其中,但一些定义是通过对 GNU C 标准库头文件(如 stddef.h)的引用来完成的,这些头文件提供了 size_t 类型以及更多内容。因此,unistd.h 只是一个通用的自适应层,它可能基于已经存在的系统和编译器特定的定义。这具有没有可能并发的一组定义的头文件的普遍优势,而是一个建立在同一个根上的头文件,因此在组合使用情况下会引起更少的关注。