C库头文件(C99)
头文件及其对应描述如下
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
常用文件及文件内函数介绍
assert.h
assert宏的原型定义在assert.h中,其作用是如果它的条件返回错误,则终止程序执行,原型定义
- 1
- 2
- 1
- 2
assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。
assert()的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含assert.h的语句之前插入 #define NDEBUG 来禁用assert调用,示例代码如下:
- 1
- 2
- 3
- 1
- 2
- 3
stdlib.h
stdlib 头文件即standard library标准库头文件。stdlib.h里面定义了五种类型、一些宏和通用工具函数。 类型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t;
宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;
常用的函数如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等
signal.h
signal.h是C标准函数库中的信号处理部分, 定义了程序执行时如何处理不同的信号。信号用作进程间通信, 报告异常行为(如除零)、用户的一些按键组合(如同时按下Ctrl与C键,产生信号SIGINT)
- 1
- 2
- 1
- 2
signal()用于确定以后当信号sig出现时的处理方法。如果handler的值是SIG_DFL,那么就采用实现定义的缺省行为;如果handler的值是SIG_IGN,那么就忽略该信号;否则,调用handler所指向的函数(参数为信号类型)。有效的信号包括:
信号 | 解释 |
---|---|
SIGABRT | 异常终止,如调用abort() |
SIGFPE | 算术运算出错,如除数为0或溢出 |
SIGILL | 非法函数映象,如非法指令 |
SIGINT | 交互式信号,如中断。 |
SIGSEGV | 非法访问存储器,如访问不存在的内存单元。 |
SIGTERM | 发送给本程序的终止请求信号 |
signal()返回信号sig原来的的handler;如果出错,则返回SIG_ERR。
当随后出现信号sig时,就中断正在执行的操作,转而执行信号处理函数(*handler)(sig)。如果从信号处理程序中返回,则从中断的位置继续执行。
信号的初始状态由实现定义。
- 1
- 2
- 1
- 2
errno.h
errno.h 是C语言C标准函式库里的标头档,定义了通过错误码来回报错误资讯的宏。当Linux C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。
time.h
time.h是C/C++中的日期和时间头文件。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
math.h
math.h头文件中声明了常用的一些数学运算,比如乘方,开方运算等等