【时时三省】(C语言基础)文件读写的出错检测
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省
C提供一些函数用来检查输入输出函数调用时可能出现的错误。
1.ferror函数
在调用各种输入输出函数(如putc , getc , fread和fwrite等)时,如果出现错误,除了函数返回值有所反映外,还可以用ferror函数检查。它的一般调用形式为
ferror ( fp );
如果ferror返回值为0(假),表示未出错;如果返回一个非零值,表示出错。
应该注意,对同一个文件每一次调用输入输出函数,都会产生一个新的ferror函数值,因此,应当在调用一个输入输出函数后立即检查ferror函数的值,否则信息会丢失。
在执行fopen函数时,ferror函数的初始值自动置为0。
2.clearerr函数
clearerr的作用是使文件出错标志和文件结束标志置为0。假设在调用一个输入输出函数时出现错误,ferror函数值为一个非零值。应该立即调用clearerr ( fp ) ,使ferror ( fp )的值变成0,以便再进行下一次的检测。
只要出现文件读写出错标志,它就一直保留,直到对同一文件调用clearerr函数或rewind函数,或任何其他一个输入输出函数。
文件的内容在实际应用中是很重要的,许多可供实际使用的C程序(尤其是有关事务管理的程序)都包含了文件处理。通常将大批数据存放在磁盘上,在运行应用程序的过程中,内存与磁盘之间频繁地交换数据,从磁盘中读入数据到计算机内存,程序对这些数据进行检查、分析、修改和其他处理,把修改过的数据再保存在磁盘上。这就牵涉到许多文件操作。