• ferror,perror,cleaner


    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("
    open  fail");
        } 
        else
        {
            printf("
    open  sucess");
        }
    
    
        if (ferror(pf)==0)//文件打开失败的情况,不让你继续,提示异常
        {
            printf("
    正常");
        } 
        else
        {
            printf("
    异常");
        }
    
    
        fputs("1234", pf);
    
        if (ferror(pf) == 0)//文件打开失败的情况,不让你继续,提示异常
        {
            printf("
    正常");
        }
        else
        {
            printf("
    异常");
        }
    
    
        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
     

     

  • 相关阅读:
    个人总结一些常见的css问题
    工作中的js总结
    js面向对象
    js的一些特性
    js 实现改变字体大小
    将博客搬至CSDN
    最大连续子序列----DP动态规划
    捡石子---贪心算法(huffman)
    素数环问题---深度搜索遍历
    nyoj---12 喷水装置(二)--区间覆盖问题
  • 原文地址:https://www.cnblogs.com/sjxbg/p/5889940.html
Copyright © 2020-2023  润新知