C语言函数:错误信息打印函数,strerror()与perror()
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()相关推荐
- C语言函数调用错误信息打印
错误打印 说明 所需头文件 PERROR() STRERROR() 两个宏说明: __FILE__(左右各两个下划线未显示) __LINE__(左右各两个下划线未显示) 其他函数: 说明 我的目的是在 ...
- 字符串查找函数和错误信息报告函数
前言: 本博客介绍了字符串查找函数(strstr.strtok)和错误信息报告函数(strerror) 字符串查找函数(strstr.strtok)的介绍及其应用: strstr函数的介绍及其模拟实现 ...
- C语言错误信息报告函数strerror、perror的使用
strerror char * strerror ( int errnum ); 返回错误码,所对应的错误信息.(是把错误码转化为对应的错误信息) #include <errno.h>// ...
- C语言中返回错误信息的函数总结
C语言strerror()函数:返回错误原因的描述字符串 头文件: #include <string.h> 定义函数: char * strerror(int errnum); 函数说明: ...
- 易语言调用API之打印函数
API之打印函数 AbortDoc 取消一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一个有效 ...
- matlab 没有sym函数,错误使用== fprintf函数没有为'sym'输入定义
这是我的MATLAB代码.函数trapezoidal()是单独定义的,并且工作正常.错误使用==> fprintf函数没有为'sym'输入定义 syms x; f = 10 + 2 * x - ...
- GetLastError 函数错误信息 代码大全
[0]-操作成功完成. [1]-功能错误. [2]-系统找不到指定的文件. [3]-系统找不到指定的路径. [4]-系统无法打开文件. [5]-拒绝访问. [6]-句柄无效. [7]-存储控制块被损坏 ...
- java 调用SAP RFC函数错误信息集锦
RFC接口调用SAP如果有异常会通过com.sap.mw.jco.JCO$Exception: 抛出异常 在开发中遇到的异常有如下 用户名密码可能是错误或者用户无权限,确认用户,必要时联系SAP负责人 ...
- springMVC,aop管理log4j,把当前session信息和错误信息打印到日志
((((其实还是不太理解aop的正真意义但是这样可以实现想要的了,我的感觉是执行一个方法时首先通过filter( 这个fiter可以不配置,之所以要他是因为在aop切入的方法session消失了,我们 ...
最新文章
- else 策略模式去掉if_设计模式(三)——简单的状态模式代替if-else
- subversion for linux redhat as5的安装
- java事件类_关于Java事件类的一些思考
- 计算机系统维护认识,计算机系统维护试验讲解
- MYSQL中的SELECT查询时进行运算
- 0046 @Transactional注解的几个参数--事务传播控制--事务隔离级别--异常与回滚
- MySQL新建用户,授权,删去用户,修改密码操作
- Altium Designer(六):Make Library
- KKR创始人亨利·克拉维斯:像实业家那样思考和行动
- 点分十进制IP和网络字节序IP互转
- Eclipse安装SVN插件最新版本 Subclipse
- 【LeetCode刷题——数据结构篇】
- 投资 2 -- 新股民必须树立正确的价值观
- 新势力新名片-上海度普新能源通过ASPICE CL2评估!
- python爬取可爱女生图片
- 一年后再回头看系列之C/C++中的选择法排序、冒泡排序
- i5-12400和i5-12400F有什么区别 i512400和12400f哪个好
- SpringCloud之利用FTL生成Word报表并下载
- HTML---一个没有下划线字体颜色为黑色的链接
- QtApplets-MyHook