linux错误处理

来源:互联网 发布:mac上做u盘启动盘 编辑:程序博客网 时间:2024/05/18 01:06

函数或者系统调用在失败时会设置外部变量errno的值来指明失败原因(错误码保存在errno中)。并且必须在函数报告出错之后,立即检查errno变量,因为它可能被下一个函数调用所覆盖,即使下一个函数自身并没有出错,也会覆盖这个变量。错误代码(errnum)的取值和含义在errno.h中,可以在man手册查找。
有三个有用的函数可以用来报告出现的错误,strerror ,perror ,printf(%m):
#include <string.h>
char* strerror(int errnum);
把错误代码映射为一个对发生的错误进行说明的字符串。
#include <stdio.h>
void perror(const char* s);
把errno变量中报告的当前错误映射到一个字符串,并把它输出到标准出错流。该字符串的前面加上字符串s(如果不为空)中给出的信息,在加上一个冒号和一个空格。
#include <stdio.h>
int printf("%m");打印当前错误信息字符串。

示例程序:

error.c

#include <stdio.h>
#include <string.h>
#include <errno.h>

int main(void)
{
    
    FILE* fp = fopen("hello", "r");
    
    if(NULL == fp)
    {//失败,会设置错误码
        
        printf("文件打开失败!\n");

        printf("errno = %d\n", errno);
        
        printf("%s\n", strerror(errno));
        
        perror("当前错误信息");
        
        printf("errno string:[%m]\n");

    }    
    
    return 0;
}
注意:在程序中用到errno变量时,不要忘记加errno.h头文件。
0 0
原创粉丝点击