zoukankan      html  css  js  c++  java
  • fprintf 和 perror 的理解1

    程序中的两种出错处理:

    第一种: 用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:  }

    image

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

    第二种、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:  }

    image

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

  • 相关阅读:
    [多线程学习笔记]条件变量
    [多线程学习笔记]互斥量
    [多线程学习笔记]线程生命周期
    多定时器队列
    双向环形链表
    多目录,多可执行文件的Makfile的编写
    大工匠
    从零开始打造我的计算机系统【运行效果】
    从零开始打造我的计算机系统【交叉汇编器】
    C中的回调函数
  • 原文地址:https://www.cnblogs.com/pengdonglin137/p/2952414.html
Copyright © 2011-2022 走看看