C语言 "errno.h" 错误编号

Posted 匆忙拥挤repeat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 "errno.h" 错误编号相关的知识,希望对你有一定的参考价值。

文章目录


errno.h

errno.h 头文件定义了整数变量 errno,它是通过系统调用设置的,表明在错误事件中的某些库函数发生了错误。它可以被一个程序读取和修改。 在程序启动时,errno 设置为零,C 标准库中的特定函数修改它的值为一些非零值以表示某些类型的错误。您也可以在适当的时候修改它的值或重置为零。

extern int * __error(void); //返回值为int* 的指针函数;
#define errno (*__error())  //*__error() 是int值。

errno.h头文件定义了一系列表示不同错误代码的宏,这些宏应扩展为类型为 int 的整数。
如,

EDOM; //这个宏表示一个域错误,它在输入参数超出数学函数定义的域时发生,errno 被设置为 EDOM
ERANGE; //这个宏表示一个范围错误,它在输入参数超出数学函数定义的范围时发生,errno 被设置为 ERANGE。
...//还有很多的宏,它们后面都有相应的注释,表示一个什么样的错误

使用

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void test()

	FILE *file = fopen("aaaa.c", "r");
	if (file == NULL) 
	    printf("打开文件发生了错误,错误说明是:%s\\n", strerror(errno));
	
	//重置为零
    errno = 0;

fopen()打开一个不存在的文件,返回NULL指针。
系统发生了错误,会自动修改 errno 的值。
通过 strerror(errno) 获取 错误号对应的 字符串描述。

程序输出:打开文件发生了错误,错误说明是:No such file or directory

当使用一些标准库函数发生了错误,如返回 NULL指针时;系统很有可能会修改errno。这时就可以去获取errno,或输出相应的错误字符串。

以上是关于C语言 "errno.h" 错误编号的主要内容,如果未能解决你的问题,请参考以下文章

C语言socket编程

C语言中头文件errno.h是啥含义?包含些啥内容?

C语言文件写入时报错,不知道问题出在哪了!

C语言问题,每次提示parse error before '['token 也不知道哪儿错了

C语言编译出现错误,请问错在哪? #include <stdio.h> int main()

帮忙看一下这个C语言程序错在哪里了