一、errno是什么?
errno是linux系统编程提供的全局整型变量,存储系统提供的api函数最后一次出错的错误码。
- 错误码宏定义在/usr/include/asm-generic/目录下的 errno-base.h 和 errno.h文件,这两个文件分别存储1-34,35-132的错误码宏定义
- api函数执行错误时,更新errno值;api函数执行成功,errno值不变
- linux系统api函数总结
- 对应Windows系统的GetLastError(返回线程中调用api函数的错误)和WSAGetLastError(返回Windows socket api函数执行错误)
二、errno有什么作用?
调试代码,输出errno值,查看api函数的执行错误(只在函数执行错误时修改errno值,较难定位,可以在需定位的范围内,先置errno为0)
三、errno怎么用?
- perror(打印函数)
头文件:#include<stdio.h>
原型:void perror(const char *s);
用法:perror(“abc”);->打印->abc:错误码对应的具体内容(如no such file or directory)
- strerror
头文件:#include<string.h>
原型:char *strerror(int errnum);
用法:printf(strerror(errno));->打印->错误码对应的具体内容(如no such file or directory)
- 若使用errno变量,加头文件#include<errno.h>(该头文件加了头文件#include<errno-base.h>)