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

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

关于errno

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

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

strerror函数

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

注意

使用该函数需要导入
#include 
#include 

perror函数

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

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

实现代码如下:

    //用strerror函数实现perror函数的功能
    #include
    #include
    #include
    #include
    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;
    }

你可能感兴趣的:(linux,linux)