C语言函数:错误信息打印函数,strerror()与perror()

strerror:

C语言函数: 字符串函数及模拟实现strtok()、strstr()、strerror()_srhqwe的博客-CSDN博客

perror():

perror与strerror都是用来错误信息打印的函数。但是这两个却有着很大的区别。

头文件:<stdio.h>

从参数可以看到,perror的定义部分就与strerror就截然不同。

perror不需要返回东西,并且只需要传入一个指针。

与strerror不同的点:

1.perror可以直接找到错误编码然后得到错误信息,而strerror需要一个全局变量errnum去储存代码的错误编码,然后将这个全局变量errnum(在使用全局变量errnum时,还需要引它的头文件<errnum.h>)传入strerror函数中,最后才能得到错误信息。

2.perror可以直接打印数据错误信息,而strerror是返回一个指向错误信息的指针,然后我们需要手动用printf去打印它。

使用strerror打印错误信息:

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>
#include <string.h>
#include <errno.h>int main()
{FILE* pf = fopen("test.txt", "r");if(pf ==NULL)printf("%s\n", strerror(errno));//结果:No such file or directoryreturn 0;
}

使用perror打印错误信息:

#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>
#include <string.h>
#include <errno.h>int main()
{FILE* pf = fopen("test.txt", "r");if (pf == NULL)perror("open");//结果:open:No such file or directoryreturn 0;
}

从结果可以很清晰地看出两个地区别。

在perror的实参部分传入了一个”open“的字符串。在结果中看到,错误信息中包含了perror的实参字符串,这个字符串被用来添加到了错误信息的最前面且被增加了一个':'字符。

很明显,perror的形参部分是为了给使用者进行标记错误信息的位置。以便找到这个错误信息的来源。

因此,会发现perror比strerror更方便使用,在实际应用中使用perror也是一个不错的选择。

C语言函数:错误信息打印函数,strerror()与perror()相关推荐

  1. C语言函数调用错误信息打印

    错误打印 说明 所需头文件 PERROR() STRERROR() 两个宏说明: __FILE__(左右各两个下划线未显示) __LINE__(左右各两个下划线未显示) 其他函数: 说明 我的目的是在 ...

  2. 字符串查找函数和错误信息报告函数

    前言: 本博客介绍了字符串查找函数(strstr.strtok)和错误信息报告函数(strerror) 字符串查找函数(strstr.strtok)的介绍及其应用: strstr函数的介绍及其模拟实现 ...

  3. C语言错误信息报告函数strerror、perror的使用

    strerror char * strerror ( int errnum ); 返回错误码,所对应的错误信息.(是把错误码转化为对应的错误信息) #include <errno.h>// ...

  4. C语言中返回错误信息的函数总结

    C语言strerror()函数:返回错误原因的描述字符串 头文件: #include <string.h> 定义函数: char * strerror(int errnum); 函数说明: ...

  5. 易语言调用API之打印函数

    API之打印函数 AbortDoc 取消一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一个有效 ...

  6. matlab 没有sym函数,错误使用== fprintf函数没有为'sym'输入定义

    这是我的MATLAB代码.函数trapezoidal()是单独定义的,并且工作正常.错误使用==> fprintf函数没有为'sym'输入定义 syms x; f = 10 + 2 * x - ...

  7. GetLastError 函数错误信息 代码大全

    [0]-操作成功完成. [1]-功能错误. [2]-系统找不到指定的文件. [3]-系统找不到指定的路径. [4]-系统无法打开文件. [5]-拒绝访问. [6]-句柄无效. [7]-存储控制块被损坏 ...

  8. java 调用SAP RFC函数错误信息集锦

    RFC接口调用SAP如果有异常会通过com.sap.mw.jco.JCO$Exception: 抛出异常 在开发中遇到的异常有如下 用户名密码可能是错误或者用户无权限,确认用户,必要时联系SAP负责人 ...

  9. springMVC,aop管理log4j,把当前session信息和错误信息打印到日志

    ((((其实还是不太理解aop的正真意义但是这样可以实现想要的了,我的感觉是执行一个方法时首先通过filter( 这个fiter可以不配置,之所以要他是因为在aop切入的方法session消失了,我们 ...

最新文章

  1. else 策略模式去掉if_设计模式(三)——简单的状态模式代替if-else
  2. subversion for linux redhat as5的安装
  3. java事件类_关于Java事件类的一些思考
  4. 计算机系统维护认识,计算机系统维护试验讲解
  5. MYSQL中的SELECT查询时进行运算
  6. 0046 @Transactional注解的几个参数--事务传播控制--事务隔离级别--异常与回滚
  7. MySQL新建用户,授权,删去用户,修改密码操作
  8. Altium Designer(六):Make Library
  9. KKR创始人亨利·克拉维斯:像实业家那样思考和行动
  10. 点分十进制IP和网络字节序IP互转
  11. Eclipse安装SVN插件最新版本 Subclipse
  12. 【LeetCode刷题——数据结构篇】
  13. 投资 2 -- 新股民必须树立正确的价值观
  14. 新势力新名片-上海度普新能源通过ASPICE CL2评估!
  15. python爬取可爱女生图片
  16. 一年后再回头看系列之C/C++中的选择法排序、冒泡排序
  17. i5-12400和i5-12400F有什么区别 i512400和12400f哪个好
  18. SpringCloud之利用FTL生成Word报表并下载
  19. HTML---一个没有下划线字体颜色为黑色的链接
  20. QtApplets-MyHook

热门文章

  1. USB接口鼠标接触不良的简单处理
  2. caffe-ristretto:定点举例
  3. JAVA强制类型转换常见错误
  4. “蚁景杯”WUSTCTF2021新生赛writeup
  5. 工具推荐 | 分析大数据最需要的Top 10数据挖掘工具
  6. GoogleCode新手教程
  7. 基于百万级别的站内信设计
  8. 网站群发站内信数据库表设计
  9. 避免创业的大忌,我为何给 TDengine 只选择了集群、高性能与 SQL 支持三大特点?
  10. python3.5中文手册_Python-3.5.X官方学习入门指南中文版