文件
一个文件通常就是磁盘上的一段命名的存储区。但对于操作系统来说,文件就会更复杂一些。例如,一个大文件可以存储在一些分散的区段中,或者还会包含一些使操作系统可以确定其文件类型的附加数据。
C将文件看成是连续的字节序列,其中每一个字节都可以单独地读取。ANSI C提供了文件的两种视图:文本视图和二进制视图。
1° 文本视图和二进制视图
ANSI要求提供的两种文件视图是文本视图和二进制视图。在二进制视图中,文件中的每个字节都可以为程序所访问。在文本视图中,程序看到的内容和文件的内容有可能不同。举例说明:使用文本视图读取文件时,将把行尾的本地环境表示法映射为C视图。与之类似,在输出的时候,也会将C视图中的行尾表示映射为本地环境表示法。例如,MS-DOS文本文件用回车符和换行符的组合\r\n来表示行尾。Macintosh文本文件只用一个回车符\r来表示行尾。C程序使用一个\n来表示行尾。所以,如果C程序以文本视图模式处理一个MS-DOS文本文件,在读取文件时它会将\r\n转换为\n,在写入文件的时候它会将\n转换为\r\n;而对于Macintosh文本文件的文本视图,在读取文件时它会将\r转换为\n,在写入文件的时候它会将\n转换为\r。
处理一个MS-DOS文本文件不必局限于仅仅使用文本视图。对这样的文件还可以使用二进制视图。如果是这样,程序将看到文件中的\r和\n字符,没有任何映射发生。MS-DOS区分文本文件和二进制文件,但C提供的是文本和二进制视图。通常,对于文本文件使用文本视图,对于二进制文件使用二进制视图。但是,您可以使用任何一种视图处理认一种文件,尽管用文本视图处理二进制文件的效果很糟。
ANSI C提供了两种打开文件的模式:①二进制模式②文本模式
2° 标准文件
C程序自动为您打开3个文件。
- 标准输入(standard input)。默认的标准输入是系统的一般输入设备,通常为键盘
- 标准输出(standard output)。
- 标准错误输出(standard error output)。默认的标准输出和标准错误输出是系统的一般输出设备,通常为显示器。