linux 错误处理
linux程序设计中,有许多系统调用和函数会因为各种原因而失败.在失败时设置外部变量errno的值来指明失败原因.程序必须在函数报告出错之后立即检查errno变量,因为它可能被下一个函数调用所覆盖(外部变量errno只有一个,所有的失败调用(这些调用指的是失败会设置errno的调用)都会设置errno).
错误代码的取值和含义都列在errno.h里
EPERM: 操作不允许
ENOENT:文件或目录不存在
EINTR:系统调用被中断
EIO: I/O错误
EBUSY:设备或资源忙
EEXIST:文件存在
EINVAL:无效参数
EMFILE:打开的文件过多
ENODEV:设备不存在
EISDIR:是一个目录
ENOTDIR:不是一个目录
函数strerror 和 perror
strerror:把错误代码映射为一个字符串 #include <string.h> char *strerror( int errnum ). 该函数返回errnum对应的错误的描述 的字符串.如printf("%d : %s\n", i, strerror(5));
perror:用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出 到 标 准 错误 (stderr) 。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno 的值来决定要输出的字符串。