文件操作与错误处理:编程中的关键要点
一、文件系统对象与抽象概念
在编程中,文件操作是一项重要的技能。以 ReplaceNumbersInStream() 函数为例,它仅接受一个 FILE 指针参数,却能读取文件、字符流甚至键盘输入的字符,将信息转换后输出到标准输出。这得益于 UNIX “一切皆文件” 的哲学理念,一个打开的 FILE 指针可以指向普通文件、目录、字符流、其他程序的管道、键盘、Xcode 中的控制台面板、终端窗口或网络通信套接字等。
这种不同对象之间的可互换性被称为抽象,是面向对象编程的关键概念。对于程序员来说,这意味着无需为不同的输入源编写多个版本的 ReplaceNumbersInStream() 函数,只需编写一个从 FILE 读取的函数,然后传入任意打开的 FILE 即可。
然而,抽象并不意味着所有由 FILE 表示的对象行为完全相同。每个 FILE 都有一组属性限制其操作。例如,标准输入字符流是 FIFO 管道的读取端,只能使用 fgetc() 、 fgets() 、 fscanf() 和 fread() 等函数读取字符,不能使用 fputc() 或 fprintf() 等函数写入字符。同样,以只读模式(“r”)打开的文件不能使用写入函数,以
超级会员免费看
订阅专栏 解锁全文

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



