POSIX
表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX
),POSIX
标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称。其正式称呼为IEEE Std 1003,而国际标准名称为ISO/IEC 9945。
POSIX
标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX
兼容的操作系统编写的程序,应该可以在任何其它的POSIX
操作系统(即使是来自另一个厂商)上编译执行。
POSIX
只定义接口,不定义具体实现,即定义了头文件 *.h
,源文件*.c
或库文件由各个提供商提供。
POSIX
是标准C的超集,意味着标准C的函数都属于POSIX
,可以直接使用这些函数,比如stdio.h
中的printf
、scanf
,pthread.h
中的pthread_create
等。
POSIX
主要由四部分组成:
XBD(Base Definitions volume)
:包含一些通用的术语、概念、接口以及工具函数(cd
,mkdir
,cp
,mv
等)和头文件定义(stdio.h
,stdlib.h
,pthread.h
等)。XSH(System Interface volume)
:包含系统服务函数的定义,例如线程、套接字、标准IO、信号处理、错误处理等。XCU(Shell and Utilities volume)
:包含shell脚本书写的语法、关键字以及工具函数(break
,cd
,cp
,continue
,pwd
,return
)的定义。XRAT(Rationale volume)
:包含与本标准有关的历史信息以及采用或舍弃某功能的扩展基本原理。
C语言的标准库包括15个部分,每一个部分都有一个头描述。标准头主要由函数原型、类型定义以及宏定义组成。
标准头名 | 功能 | 描述 |
---|---|---|
<assert.h> |
诊断 | 仅包含assert 宏。可以在程序中使用该宏来诊断程序状态(例如某个变量是否为0等),若检查失败,程序终止。 |
<ctype.h> |
字符处理 | 包含判断字符类型及大小写转换的函数。 |
<errno.h> |
错误监测 | 提供了errno 。可以在调用特定库函数后检测errno 的值以判断调用过程中是否有错误发生。 |
<float.h> |
浮点数特性 | 提供了描述浮点数特性的宏。 |
<limits.h> |
整型特性 | 提供了描述整数类型和字符类型特性的宏。 |
<locale.h> |
本地化 | 提供了一些支持程序国际化的函数。 |
<math.h> |
数学计算 | 提供了大量用以数学计算的函数。 |
<setjmp.h> |
非本地跳转 | 提供了用于绕过正常的函数返回机制,从一个函数跳转到另一个正在活动的函数的setjmp 和longjmp 函数。 |
<signal.h> |
信号处理 | 提供了包括中断和运行时错误在内的异常情况处理函数。 |
<stdarg.h> |
不定参数 | 提供了支持函数处理不变个数的参数的工具。 |
<stddef.h> |
常用定义 | 提供了常用的类型和宏。 |
<stdio.h> |
输入输出 | 提供了大量输入输出函数。 |
<stdlib.h> |
常用实用函数 | 提供了大量实用的函数。 |
<string.h> |
字符串处理 | 提供了大量字符串处理函数。 |
<time.h> |
日期和时间 | 提供了获取、操纵和处理日期的函数。 |