程序中的两种出错处理:

第一种: 用fprintf

   2:  #include <string.h>
   3:  #include <errno.h>
   4:  #include <stdlib.h>
   5:   
   1:  #include <stdio.h>
   6:  int main(void)
   7:  {
   8:      FILE *fp;
   9:   
  10:      if((fp = fopen("1.c", "r")) == NULL)
  11:      {
  12:          fprintf(stderr, "fopen error! %s", strerror(errno));
  13:          exit(-1);
  14:      }
  15:      return 0;
  16:  }

可以看出,这种输出结果不会自动换行。而且参数较多。

第二种、perror

   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main(void)
   5:  {
   6:      FILE *fp;
   7:   
   8:      if((fp = fopen("1.c", "r")) == NULL)
   9:      {
  10:          perror("fopen error!");
  11:          exit(-1);
  12:      }
  13:      return 0;
  14:  }

可以看出:用perror的输出会自动换行,且自动加上一个冒号和错误提示。推荐!

转载于:https://www.cnblogs.com/pengdonglin137/archive/2013/03/10/2952414.html

fprintf 和 perror 的理解1相关推荐

  1. C语言学习第7天(错误处理、递归、内存管理)默认熟悉数据结构和java基础

    重点强调一下 初学者可以去https://www.runoob.com/网站学习各种语言的基础 错误处理 C语言不提供对错误处理的直接支持,但它可以用返回值的形式允许你访问底层数据.在发生错误的时候, ...

  2. stdin和stdout用法c语言,C语言中的stdin,stdout,stderr

    我们在写C程序时经常遇到printf(),fprintf(),perror(),这些东西到底有什么作用.说到这不得不提及stdin,stdout,stderr.想想,我们在用C去写文件时的操作,Fil ...

  3. stdin、stdout

    我们在写C程序时经常遇到printf(),fprintf(),perror(),这些东西到底有什么作用.说到这不得不提及stdin,stdout,stderr.想想,我们在用C去写文件时的操作,Fil ...

  4. stdio.h头文件包含的函数有哪些?

    stdio.h 以下来自维基百科中文 多数与C语言输入输出相关的函数在<stdio.h>中定义(C++中的<cstdio>). 文件访问 fopen freopen fflus ...

  5. c语言 u16 printf,C 语言printf打印各种数据类型的方法(u8/s8/u16/s16.../u64/double/float)(全)...

    u16 首先必须知道u8,s8等数据类型的定义: typedef signed char s8; typedef unsigned char u8; typedef signed short s16; ...

  6. linux互斥锁和条件变量,如何理解互斥锁和条件变量?

    下面的代码出自<Unix/Linux编程实践教程>,作用是用两个线程分别统计两个文件的单词的数目,并在主线程中计算总数.下面是运行截图: 但是看了半天还是难以理解下面代码中的加锁.解锁以及 ...

  7. linux container容器技术框架性理解

    我对container原理的一些理解(基于linux kernel 2.6.38) by kin 2011.04.17 ======================================== ...

  8. Linux网络编程 五种I/O 模式及select、epoll方法的理解

    近期一次面试机会让我觉得有很多地方理解可能不到位,翻翻谷歌的资料加深对一些技术的理解 五种I/O 模式: [1] 阻塞 I/O (Linux下的I/O操作默认是阻塞I/O,即open和socket创建 ...

  9. 十个问题理解Linux epoll工作原理

    作者:dustinzhou,腾讯 IEG 运营开发工程师 epoll 是 linux 特有的一个 I/O 事件通知机制.很久以来对 epoll 如何能够高效处理数以百万记的文件描述符很有兴趣.近期学习 ...

最新文章

  1. mysql隐藏用户名_系统默认的MySQL用户名消失的解决方法(修正版)
  2. 机器学习——人工神经网络之多层神经网络(多层与三层)
  3. Vuejs 写法实例
  4. struts2 poi excel 导出
  5. selenium使用TestNG实现DDT
  6. python行与缩进_Python行结构与缩进的简单介绍
  7. 2.4_double-ended_queue_双向队列
  8. cls image.php,Ecshop安装过程中的的相关问题:cls_image::gd_version()和不支持JPEG_PHP教程...
  9. 人脸对齐 matlab,常用几种人脸对齐算法ASM/AAM/CLM/SDM
  10. 姿态估计1-02:FSA-Net(头部姿态估算)-源码训练测试-报错解决
  11. 激光SLAM:激光雷达运动畸变补偿--轮速里程计辅助方法
  12. html去除文章符号,HTML中怎么去除列表项符号
  13. Visual Studio 中使用万能头文件 #include bits/stdc++.h
  14. 学会 Arthas,让你 3 年经验掌握 5 年功力!
  15. 2022-2027年中国石榴石行业发展前景及投资战略咨询报告
  16. 2015年心情随笔--周围太烦躁,我想静静
  17. 用Linux+IPChains代替Windows+WinGate
  18. EC20 4G 海思 3520D 拨号失败(APN需要设置为三大运营商的指定值)
  19. 我的学习观(一)——主动学习
  20. 韦伯的组织理论(1911)--轉

热门文章

  1. ACwing 4. 多重背包问题 I(DP)
  2. ACwing 2. 01背包问题(DP)
  3. LeetCode MySQL 619. 只出现一次的最大数字
  4. python清洗文本数据_02.数据预处理之清洗文本信息
  5. ftp可以传输什么类型文件_FTP文件传输工具-ForkLift for Mac
  6. docker $PWD路径_Docker 技术系列之安装Redis单机版和集群版
  7. mysql获取网站绝对路径_Symfony2获取web目录绝对路径、相对路径、网址的方法
  8. ubuntu定时执行python脚本方法及实例代码
  9. python中的类方法和静态方法
  10. java程序语言228_2019年Java面试题基础系列228道(5)