c程序设计语言(第二版) 阅读笔记 八 文件

  在读写一个文件之前,必须通过库函数fopen打开该文件。fopen用类似于x.c或y.c(文件名)这样的外部名与操作系统进行某些必要的连接和通信,并返回一个随后可以用于文件读写操作的指针。

  该指针称为文件指针,它指向一个包含文件信息的结构,这些信息包括:缓冲区的位置、缓冲区当前字符的位置、文件的读或写状态、是否出错或是否已经到达文件结尾等等。用户不用关心这些细节,因为<stdio.h>中已经定义了一个包含这些信息的结构FILE。在程序中只需要按下列方式声明一个文件指针即可:

  FILE *fp;

  FILE *fopen(char *name, char *mode);

  fclose执行和fopen相反的操作,它断开由fopen函数建立的文件指针和外部名之间的连接,并释放文件指针以供其他文件使用。因为大多数操作系统都限制了一个程序可以同时打开的文件数,所以,当文件指针不再需要时就应该释放,这是一个好的编程习惯,就像我们在cat程序中所做的那样。对输出文件执行fclose还有另外一个原因:它将把缓冲区中由putc函数正在收集的输出写到文件中。当程序正常终止时,程序会自动为每个打开的文件调用fclose函数。(如果不需要使用stdin与stdout,可以把它们关闭掉。也可以通过函数freopen重新指定它们。)

posted @ 2009-11-03 10:49  老保  Views(230)  Comments(0)    收藏  举报