15.7 关闭流
流使用函数fclose关闭的,它的原型如下:
int fclose( FILE *f );
对于输出流,fclose函数在文件关闭之前刷新缓冲区。如果它执行成功,fclose返回值零,否则返回EOF。
程序15.1把它的命令行参数解释为一列文件名。它打开每个文件并逐个对它们进行处理。如果有任何一个文件无法打开,它就打开一条包含该文件名的错误信息。然后程序继续处理列表中的下一个文件名。退出状态(exit status)取决于是否有错误发生。
前文提到,任何有可能失败的操作都应该进行检查,确实它是否成功执行。这个程序对fclose函数的返回值进行了检查,看看是否有什么地方出现了问题。许多程序员懒得执行这个测试,它们争辩说关闭文件没理由失败。更何况,此时对这个文件的操作已经结束,即使fclose函数失败也并无大碍。然而,这并不完全正确。
/*
**处理每个出现于命令行的文件的文件名。
*/
#include<stdlib.h>
#include<stdio.h>
int main( int ac, char **av ){
int exit_status = EXIT_SUCCESS;
FILE *input;
/*
**当还有更多的文件名时...
*/
while( *++av != NULL ){
/*
**试图打开这个文件。
C和指针 第15章 输入/输出函数 15.7 关闭流
于 2022-07-06 07:01:46 首次发布