用strerror函数实现perror函数的功能

来源:互联网 发布:mac ssh 客户端 推荐 编辑:程序博客网 时间:2024/06/07 05:27

实现这个功能比较简单,主要是要搞清strerror函数和perror函数。

关于errno

为什么要来介绍errno呢?    因为它记录了调用库函数或系统调用后的错误信息。什么是errno?    errno记录了系统的最后一次错误代码。errno是一个int型的系统全局变量,其错误代码定义在errno.h中。每一个errno变量对应着    以字符串表示的错误类型。

介绍完errno后,我们来介绍上面提到的两个函数。

strerror函数

通过标准错误的标号,获得错误的描述字符串 ,将单纯的错误标号转为字符串描述,方便用户查找错误。char  * strerror(int  errnum);简单的说:就是errno转为错误字符串。

注意

使用该函数需要导入#include <errno.h>#include <string.h>

perror函数

void perror(const char *s);将上一个函数的出错信息输出到标准设备。参数s所指的字符串先打印,后面跟上错误原因字符串。

讲完之后,只需要获取errno,传入strerror函数,进行拼接,即可编写自己的perror函数。

实现代码如下:

    //用strerror函数实现perror函数的功能    #include<stdio.h>    #include<stdlib.h>    #include<errno.h>    #include<string.h>    void  myperror(char * str){         extern int errno;         char *error=strerror(errno);         printf("%s: %s\n",str,error);    }    int main(){        FILE *fp;        fp=fopen("~/aaa.txt","r+");        if(NULL==fp){            myperror("openerror");        }        return 0;    }
阅读全文
0 0
原创粉丝点击