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

实现这个功能比较简单,主要是要搞清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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值