1.ferror

  • 函数原型: int ferror(FILE *fp)
  • 功能:测试文件是否出现错误
  • 返回值:未出错是0;出错为非0。
  • 每次调用文件输入输出函数,均产生一个新的ferror函数值
  • fopen打开文件时,ferror函数处置自动置为0
  • 对同一个文件(文件指针或文件描述符)每一次调用输入输出函数,均产生一个新的ferror函数值,因此,应当在调用一个输入输出函数后立即检查ferror函数的值,否则信息会丢失。因此,应当在调用一个输入输出函数后立即检 查ferror函数的值,否则信息会丢失。
  • 在执行fopen函数时,ferror函数的初始值自动置为0。

eg:

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//ferror检测程序异常或者正常
//没读写一次,产生一个ferror
//0代表正常,1异常void main2()
{FILE *pf = fopen("C:\\51job.txt", "r");if (pf==NULL){printf("\nopen  fail");} else{printf("\nopen  sucess");}if (ferror(pf)==0)//文件打开失败的情况,不让你继续,提示异常
    {printf("\n正常");} else{printf("\n异常");}fputs("1234", pf);if (ferror(pf) == 0)//文件打开失败的情况,不让你继续,提示异常
    {printf("\n正常");}else{printf("\n异常");}system("pause");
}

2.clearerr()

定义函数:void clearerr(FILE * stream);
函数说明:clearerr()清除参数stream 指定的文件流所使用的错误旗标.

3.perror()

  • 原函数:

    void perror(const char *s);

  • 功能:
  • perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出 到 标 准 设备 (stderr) 。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量error 的值来决定要输出的字符串。  在库函数中有个error变量,每个error值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经 重新设置了error的值。perror函数只是将你输入的一些信息和现在的error所对应的错误一起输出。
  • eg: 
  #include <stdio.h>  int main(void)  {FILE *fp ;  fp = fopen( "/root/noexitfile", "r+" );  if ( NULL == fp )  {  perror("/root/noexitfile");  }  return 0;  }  运行结果:  [root@localhost io]# gcc perror.c  [root@localhost io]# ./a.out  /root/noexitfile: No such file or directory
 

转载于:https://www.cnblogs.com/sjxbg/p/5889940.html

ferror,perror,cleaner相关推荐

  1. 20160301.CCPP体系详解(0040天)

    程序片段:01.fscanfprintf.c+02.51Job.c+03.7K7K.c 内容概要:fscanffprintf ///01.fscanfprintf.c #define _CRT_SEC ...

  2. C语言文件操作(四) —— 文件读取结束的判定(feof、ferror)

            目录 1.feof.ferror 函数返回值 (1) feof 函数 (2) ferror 函数 2.feof.ferror 函数函数使用 fgetc.fgets的返回值说明都有提到一 ...

  3. C语言之EOF、feof函数、ferror函数

    本文为转载文章,原文:C语言再学习 -- EOF.feof函数.ferror函数 EOF详解 1.定义: EOF是end of file的缩写,表示"文字流"(stream)的结尾 ...

  4. C语言再学习 -- EOF、feof函数、ferror函数

    EOF详解 EOF是end of file的缩写,表示"文字流"(stream)的结尾.这里的"文字流",可以是文件(file),也可以是标准输入(stdin) ...

  5. matlab中 feof(fp),feof和ferror函数,C语言feof和ferror函数详解

    正如前面所讲,fgetc(或者getc)函数返回 EOF 并不一定就表示文件结束,读取文件出错时也会返回 EOF.即 EOF 宏不但能够表示读到了文件结尾这一状态,而且还能表示 I/O 操作中的读.写 ...

  6. linux C语言perror()函数(将错误消息写入标准错误)(把一个描述性错误消息输出到标准错误 stderr。首先输出自定义字符串 str,后跟一个冒号,然后是一个空格)

    文章目录 man 3 perror man 3posix perror 20220723 C语言 | perror函数使用详解 man 3 perror PERROR(3) Linux Program ...

  7. Linux环境编程--linux中的perror、exit、_exit、wait 和 waitpid

    perror: #include<stdio.h>        #include<stdlib.h> 定义函数 void perror(const char *s);  pe ...

  8. MySQL排错工具perror

    2019独角兽企业重金招聘Python工程师标准>>> 我们在运维MySQL数据库的时候,会经常返回一个错误代码,有些错误会自动跟随一些提示,有的则没有,而在MySQL自带工具集中, ...

  9. C库函数-perror()

    原文出处: http://wiki.jikexueyuan.com/project/c/perror.html 描述 C库函数 *void perror(const char *str) 把一个错误消 ...

最新文章

  1. [转]语音识别中区分性训练(Discriminative Training)和最大似然估计(ML)的区别...
  2. 《Mysql数据库及应用》_MySQL数据库及应用
  3. 深度学习核心技术精讲100篇(十)-机器学习模型融合之Kaggle如何通过Stacking提升模型性能
  4. 2016012090+小学四则运算练习软件项目报告
  5. [Java] Hashmap分析
  6. vue项目条形码和二维码生成工具试用
  7. 阿里数据总监分享《阿里数据中台建设实践案例》,PPT+语音讲解!
  8. matlab compiler 与matlab coder 区别,MATLAB编译器与MATLAB编码器
  9. 香港买thinkpad大陆使用,大陆可以享受售后服务吗
  10. linux 踢出在线用户
  11. 妙用next数组打表求最小循环节len
  12. python可变类型和不可变深浅拷贝类型_理解python可变类型vs不可变类型,深拷贝vs浅拷贝...
  13. vs 中使用32 位mysql_【转载】VS中MFC连接MySQL由于系统不同位(32/64)引起的错误:无法解析的外部符号 _mysql_init@4、_mysql_query...
  14. listary文件查找工具下载及使用
  15. installshield使用教程
  16. 河北省谷歌高清卫星地图下载
  17. 蓝桥杯:解救小哈最短路径
  18. RetianNet在DDSM(4)
  19. 《算法笔记》10.5小节——图算法专题->最小生成树
  20. 深入理解java虚拟机(五)GC垃圾回收-经典垃圾收集器

热门文章

  1. Python核心编程朱红庆_Python编程语言的核心是什么?
  2. python open函数encoding_关于python内open函数encoding编码问题
  3. java堆栈方法区_java 栈 ,堆, 方法区
  4. 带有控制器,方法,标题,参数,@ RequestParam,@ PathVariable的Spring MVC @RequestMapping注释示例
  5. 如何检查Python字典中是否存在密钥
  6. Java字符串contains()
  7. 手机怎么安装py thon_Python属性装饰器– Py​​thon @property
  8. ROS的学习(十六)用C++写一个简单的服务器(service)和客户端(client)
  9. 机器人技术与人工智能有什么区别?
  10. python kafka kerberos 验证 消费 生产