unistd.h和Unix-like系统使用的标准的版本

在C和C++编程语言中,unistd.h是头文件的名称,它提供对POSIX操作系统API的访问。

unistd.h "是Unix(-like)系统的标准头文件,在Windows上不可用。

<unistd. h>头定义了各种符号常数和类型,并声明了各种函数。

在类Unix系统中,unistd.h定义的接口通常主要由系统调用包装函数组成,如fork、pipe和I/O原语。

像Cygwin和MinGW这样的Unix兼容层也提供它们自己的unistd版本。

事实上,这些系统在提供unistd的同时还提供了翻译库,以Win32函数的形式实现其功能。

例如,在Cygwin中,一个头文件可以在include中找到,它在include/sys中又包含了一个同名的文件。

并非所有的东西都在这里定义,但有些定义是通过引用GNU C标准库头文件来完成的,这些头文件提供了size_t等类型。

因此,unistd.h只是一个通用定义的适应层,它可能是基于已经存在的系统和编译器的特定定义。

这有一个普遍的好处,即不需要定义一套可能同时存在的头文件,而是建立在相同的根基上,由于这个原因,在综合使用的情况下会引起更少的关注。

更多详情请查阅opengroup.。

unistd.h头文件中包含了Unix使用的POSIX版本和X/open版本的信息:

Name

Macro

Standard

POSIX.1-1988

_POSIX_VERSION = 198808L

POSIX.1-1990

_POSIX_VERSION = 199009L

ISO/IEC 9945-1:1990

POSIX.2

_POSIX2_C_VERSION = 199209L

ISO/IEC 9945-2:1993

POSIX.1b-1993

_POSIX_VERSION = 199309L

IEEE 1003.1b-1993

POSIX.1-1996

_POSIX_VERSION = 199506L

IEEE 1003.1-1996

POSIX.1-2001

_POSIX_VERSION = 200112L

IEEE 1003.1-2001

POSIX.1-2008

_POSIX_VERSION = 200809L

IEEE 1003.1-2008

XPG3

_XOPEN_VERSION = 3

X/Open Portability Guide 3 (1989)

XPG4

_XOPEN_VERSION = 4

X/Open Portability Guide 4 (1992)

SUS

_XOPEN_VERSION = 4 && _XOPEN_UNIX

X/Open Single UNIX Specification (UNIX95)

SUSv2

_XOPEN_VERSION = 500

X/Open Single UNIX Specification, Version 2 (UNIX98)

SUSv3

_XOPEN_VERSION = 600

Open Group Single UNIX Specification, Version 3 (UNIX03)

SUSv4

_XOPEN_VERSION = 700

Open Group Single UNIX Specification, Version 4

通过引用unistd.h头文件,我们可以查阅Unix支持的POSIX标准版本:

posix.c



#include <unistd.h>

#include <stdio.h>

int main()

{

  printf("POSIX Version:%ld.\n", _POSIX_VERSION);

  printf("POSIX2 Version:%ld.\n", _POSIX2_C_VERSION );

  printf("X/Open Version:%d.\n", _XOPEN_VERSION);



  return 0;

}


$ gcc -o posix posix.cpp
$ ./posix

POSIX Version:200809.

POSIX2 Version:200809.

X/Open Version:700.

X/Open可移植性指南是一个UNIX系统的标准,最初由X/Open有限公司出版。它以AT&T System V接口定义为基础,比POSIX的范围更广,后者只关注直接的操作系统接口。

参考:

https://www.youtube.com/watch?v=n-Hyqju4LTs

Pre-defined Compiler Macros / Wiki / Standards

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值