第21章 标准库
{% markmap %}
第21章 标准库
C89标准库总共划分成15个部分,每个部分用一个头描述。C99新增了9个头,总共有24个。
C89
<assert.h>
:诊断- 仅包含assert宏,它允许我们在程序中插入自我检查。一旦任何检查失败,程序会被终止。
<ctype.h>
:字符处理- 提供用于字符分类及大小写转换的函数。
- <errno.h>:错误
- 提供了errno(“error number”)。errno是一个左值(lvalue),可以在调用特定库函数后进行检测,来判断调用过程中是否有错误发生。
- <float.h>:浮点类型的特性
- 提供了用于描述浮点类型特性的宏,包括值的范围及精度。
- <limits.h>:整数类型的大小
- 提供了用于描述整数类型(包括字符类型)特性的宏,包括它们的最大值和最小值。
- <locale.h>:本地化
- 提供一些函数来帮助程序适应针对某个国家或地区的特定行为方式。这些与本地化相关的行为包括显示数的方式(如用作小数点的字符)、货币的格式(如货币符号)、字符集以及日期和时间的表示形式。
- <math.h>:数学计算
- 提供了常见的数学函数,包括三角函数、双曲函数、指数函数、对数函数、幂函数、邻近取整函数、绝对值运算函数以及取余函数。
- <setjmp.h>:非本地跳转
- 提供了setjmp函数和longjmp函数。setjmp函数会“标记”程序中的一个位置,随后可以用longjmp返回被标记的位置。这些函数可以用来从一个函数跳转到另一个(仍然活动中的)函数中,而绕过正常的函数返回机制。setjmp函数和longjmp函数主要用来处理程序执行过程中出现的严重问题。
- <signal.h>:信号处理
- 提供了用于处理异常情况(信号)的函数,包括中断和运行时错误。signal函数可以设置一个函数,使系统会在给定信号发生后自动调用该函数;raise函数用来产生信号。
- <stdarg.h>:可变参数
- 提供了一些工具用于编写参数个数可变的函数,就像printf和scanf函数一样。
- <stddef.h>:常用定义
- 提供了经常使用的类型和宏的定义。
- <stdio.h>:输入/输出
- 提供了大量的输入/输出函数,包括对顺序访问和随机访问文件的操作。
- <stdlib.h>:常用实用程序
- 包含了大量无法划归其他头的函数。包含在<stdlib.h>中的函数可以将字符串转换成数,产生伪随机数,执行内存管理任务,与操作系统通信,执行搜索与排序,以及在多字节字符与宽字符之间进行转换。
- <string.h>:字符串处理
- 提供了用于进行字符串操作(包括复制、拼接、比较及搜索)的函数以及对任意内存块进行操作的函数。
- <time.h>:日期和时间
- 提供相应的函数来获取时间(和日期),操纵时间,以及格式化时间的显示。
C99
- <complex.h>:复数算术
- <fenv.h>:浮点环境
- <inttypes.h>:整数类型格式转换
- <iso646.h>:拼写转换
- <stdbool.h>:布尔类型和值
- <stdint.h>:整数类型
- <tgmath.h>:泛型数学
- <wchar.h>:扩展的多字节和宽字符实用工具
- <wctype.h>:宽字符分类和映射实用工具