errno,perror(),strerror()
C语言编程中错误打印需要知道的知识:
- errno:表示错误代号
- perror():显示传给它的字符串 ,头文件
<stdio.h>
- strerror():返回一个指针,指向错误码代表的以文本显示的string。头文件
<string.h>
errno.h
errno.h是标准C库的头文件,定义了通过错误码来回报错误信息的宏。
errno
errno本身是一个int型的全局变量,库函数在发生错误时,可以直接返回一个错误的标识,比如-1或者NULL,具体的出错原因就保存在errno中,通过查看errno可以确定具体的出错原因。
errno.h
是C语言C标准函式库里的标头档,定义了通过错误码来回报错误信息的宏
。
errno
本身是一个整型的全局变量
,当使用errno的库函数,在执行出错时,只通过函数返回值返回一个表示出错的标识
,如-1
或NULL
等,具体的出错原因会被赋值到errno中。通过查询errno可以确定具体的出错原因。
在errno.h
中定义了一系列常见的宏,其形式为
#define EPERM 1 /* Operation not permitted */
可以划分为
- 定义一个
宏名
,以E开头
; - 定义其
值
,为一个正整数
; - 一个
注释
区域,说明该错误号出现时的具体错误内容
。
errno.h
中的条目因不同编译器的实现而有所区别
,一般在100~128条范围内,具体内容可以在编译器的系统标准头文件夹下查看对应文件
。
gcc的错误代码定义
在gcc编译器的文件位置:/usr/include/asm_generic