errno.h在/usr/include下,定义了存放错误码的全局变量errno,及错误码EDOM,ERANGE,EILSEQ。它包含了/usr/include/bits下的bits/errno.h头文件。bits/errno.h不是标准C库中的头文件,在Linux中它为错误码提供数值定义,对标准C中指定的错误码EDOM,ERANGE,EILSEQ定义具体的数值。
bits/errno.h如下:
标准C的errno.h头文件如下:
解释:
(1)C标准规定了必须定义错误码EDOM,EILSEQ,ERANGE,其值可以由系统自行指定,在Linux中它们分别为33、84、34。
(2)EDOM表示参数不在数学函数能接受的范围内;EILSEQ表示非法的字节顺序,在翻译多字节字符序列时遇到的编码错误;ERANGE表示数学函数的结果超出范围。程序产生相应错误时全局变量errno会保存对应的错误码。
(3)__BEGIN_DECLS/__END_DECLS宏用来表示数据结构及函数原型声明的开始和结束。这类似于MFC中的BEGIN_MESSAGE_MAP/END_MESSAGE_MAP。
还有两个错误处理函数perror和strerror。perror在stdio.h中定义,用于打印错误码及其消息描述;strerror在string.h中定义,用于获取错误码对应的消息描述。这两个函数在解析相应头文件时再进行分析。
新闻热点
疑难解答
图片精选