第13章 文件输入/输出
函数
fopen (); getc (); putc (); exit (); fclose (); fprintf (); fscanf (); fgets (); fputs (); rewind (); fseek (); ftell (); fflush ();
fgetpos (); fsetpos (); feof (); ferror (); ungetc (); setvbuf (); fread (); fwrite ();
什么是文件?
一个文件通常就是磁盘上的一段命名的存储区。
一个大文件可以存储在一些分散的区段中,或者还会包含一些使操作系统可以确定其文件类型的
附加数据。但这些是操作系统而不是程序员(除非您是在编写操作系统)要考虑的。您需要考虑
的是如何在C程序中处理文件。
C将文件看成连续的字节序列,其中每一个字节都可以单独地读取。这与UNIX环境(C的发源地)
中的文件结构是一致的。 其他环境中的文件模型可能会有所不同。
文本视图和二进制视图
ANSI要求提供的两种文件视图是文件视图和二进制视图。在二进制视图中,文件中的每个字节都
可以为程序所访问。 例如,使用文本视图读取文件时,将把行尾的本地环境表示法映射为C视图。
与之类似,在输出的时候,也会将C视图中的行尾表示映射为本地环境表示方法。
例如,MS-DOS文本文件用回车符和换行符的组合\r\n来表示行尾。Macintosh文本只用一个回车符\r
来表示行尾。C程序使用一个\n表示行尾。 C程序以文本视图模式处理一个MS-DOS文本文件,在
读取文件时,它会将\r\n 转换成为\n,在写入文件的时候它会将\n转换为\r。
I/O级别
除了可以选择文件的视图,在大多数情况下,还可以在两个I/O级别(即两种处理文件存取的级别)中
进行选择。低级I/O使用操作系统提供的基本I/O服务;标准高级I/O使用一个标准的C库函数和stdio,h头文
件中的定义。
标准文件
C程序自动打开3个文件。这3个文件分别为标准输入,标准输出和标准错误输出。默认的标准输入是系统
的一般输入设备,通常为键盘;默认的标准输出和标准错误输出是系统的一般输出设备,通常为显示器。
用标准输入为您的程序提供输入是很自然的事请,它是getchar();gets();scanf()。
标准输出是常用的程序输出对象,为putchar(),puts()和printf()所使用。