C语言文件操作、错误处理及UNIX系统接口详解
1. 文件指针释放与输出文件处理
当文件指针不再需要时,释放它们是个不错的做法,就像在 cat 程序里做的那样。对于输出文件,调用 fclose 还有另一个原因,它会刷新 putc 收集输出的缓冲区。当程序正常终止时,会自动为每个打开的文件调用 fclose 。如果不需要 stdin 和 stdout ,也可以关闭它们,还能通过库函数 freopen 重新分配。
2. 错误处理 - 标准错误和退出
cat 程序对错误的处理并不理想。如果某个文件因某种原因无法访问,诊断信息会打印在拼接输出的末尾。若输出到屏幕,这或许可以接受,但如果输出到文件或通过管道传输到另一个程序,就不太合适了。
为了更好地处理这种情况,会为程序分配第二个输出流 stderr ,就像分配 stdin 和 stdout 一样。即使标准输出被重定向,写入 stderr 的输出通常也会显示在屏幕上。
下面是修改后的 cat 程序,将错误信息写入标准错误:
#include <stdio.h>
/* cat: concatenate files, versio
超级会员免费看
订阅专栏 解锁全文
5471

被折叠的 条评论
为什么被折叠?



