第13章 文件输入/输出
- 文件通常是在磁盘或固态硬盘上的一段已命名的存储区
- C把文件看作是一系列连续的字节,每个字节都能被单独读取
- C提供两种文件模式:文本模式和二进制模式
- 标准高级I/O使用C库的标准包和
stdio.h
头文件定义 exit()
函数关闭所有打开的文件并结束程序,其参数被传递给一些操作系统。正常结束的程序传递0,异常结束的程序传递非零值- C标准要求0或宏EXIT_SUCCESS用于表明成功结束程序,宏EXIT_FAILURE用于表明结束程序失败。这些宏和
exit()
原型都位于stdlib.h
头文件中 - ANSI C规定,在最初调用的
main()
中使用return
与调用exit(0)
的效果相同。但是仅限于最初调用,如果main()
在一个递归程序中,exit(0)
会终止程序,但是return
只会把控制权交给上一级递归,直至最初的一级。 - 在除
main()
以外的其它函数中调用exit()
也能结束整个程序 - 文件指针的类型是指向
FILE
的指针,FILE
是一个定义在stdio.h
中的派生类型 - 文件指针并不指向实际的文件,它指向一个包含文件信息的数据对象,其中包含操作文件的I/O函数所用的缓冲区信息
fprintf()
和fscanf()
函数工作方式与scanf()
和printf()
类似,区别在于前者需要使用第1个参数指定待处理的文件rewind()
函数让程序回到文件开始处,其接受一个文件指针作为参数- 使用标准I/O的第1步是调用
fopen()
打开文件,fopen()
函数不仅打开一个文件,还创建了一个缓冲区以及一个包含文件和缓冲区数据的结构,此外,该函数返回一个指向该结构的指针,以便其他函数可以找到该结构