Linux 中的errno和perror
Linux中系统调用的错误都存储于errno
中, errno
由操作系统维护, 存储就近发生的错误, 即下一次的错误码会覆盖掉上一次的错误.
Linux 的API(例如open, read, write...
)在发生异常时, 一般会返回-1
, 表示调用错误, 并且设置errno
.
通过errno
的值可以帮助我们分析具体错误的原因, 并且我们可以通过strerror()
和perror()
来获取errno
对应的错误描述.
关于几个API的详细说明:
有下面几种方法可以方便的得到错误信息
-
void perror(const char *s)
-- 将上一个linux函数发生错误的原因输出到标准错误(stderr
). -
char *strerror(int errno)
-- 将错误代码转换为字符串错误信息
- 不是所有的系统输出都有errno.
errno
定义在<errno.h>
中perror()
定义在<stdio.h>
中strerror()
定义在<string.h>
中
网友评论