当UNIX系统调用函数出错时,通常会返回-1(或nullptr),同时设置errno。
errno相当于一个系统维护的全局变量,当系统函数出错时errno的值记录了出错的原因。
errno在<errno.h>中定义。errno大概有15中不同取值(文件不存在错误,权限问题等)。
C标准中errno就是一个宏。
errno两条标准:
一:如果没有出错,其值不会被函数清除,即还停留在上一次函数出错时候的值。因此只有当我们通过返回值确定函数出错了,才有必要去看一下errno的值。
二:errno的值永远不为0。
两个打印出错信息的方法
一:
#include<string.h>
char *strerror(int errnum);
errnum:就是errno变量的值
返回值:出错信息字符串
二:
#include<stdio.h>
void perror(const char *msg);
在标准错误上输出信息,前边时msg指定的字符串,后边是具体出错信息
msg: 错误原因