errno 是在 errno.h 头文件中定义的一个**宏**。当发生任何错误时,系统调用和一些库函数会设置 errno 宏。
extern int errno;
errno 宏不接受任何参数。errno 是一个整数变量,它保存错误代码以报告错误原因。
errno 宏不返回任何值。在程序开始时,errno 值被设置为零。通过一些库函数,errno 的值被设置为一些正值以报告特定的错误情况。
#include <stdio.h>
#include <errno.h>
#include <string.h>
extern int errno ;
int main () {
FILE *pnt;
pnt = fopen("myfile.txt", "r");
if( pnt == NULL ) {
fprintf(stderr, "Value of errno is: %d\n", errno);
fprintf(stderr, "Error opening file is: %s\n", strerror(errno));
} else {
fclose(pnt);
}
return(0);
}
输出
Value of errno is: 2 Error opening file is: No such file or directory