这一章我们先来了解一下文件是什么?

一个文件通常就是磁盘上的一段命名的存储区。如我们在C语言编程中经常引入的stdio.h就是一个包含一些有用信息的文件的名称。当然对于操作系统来说,文件就会更复杂一些,例如一个大文件可以存储在一些分散的区段中,有些还会包含一些使用操作系统可以确定其文件类型的附加数据。当然这些是操作系统在干的,其实我们编程时并不需要考虑,我们只需要考虑C程序中怎么处理文件。

C将文件看成是连续的字节序列,其中每一个字节都可以单独的读取。

好了废话不多说,今天我们就先来用c打开一个文件:

c提供了一个fopen函数可以来打开文件,这个函数在stdio.h中声明,它的原型如下:FILE *fopen (const char *__restrict __filename, const char *__restrict __modes)

它的第一个参数是要打开的文件名,或者说是包含文件名的字符串的地址,第二个参数是用什么模式进行打开.

我们先来了解一下fopen函数的模式字符串

当然对于向unix和linux这样只有一种文件类型的系统,带b字母的模式和对应的不带b字母的模式是相同的。

这里需要注意的是使用任何一种带"w"的模式打开一个已有文件,文件都会被清空。

我们来看一个例子:

好,现在我们在在这个程序里再用w模式打开一次,看看test.txt文本有没有发生什么变化。

可以看到文本已经被清空。

好了看了上面的代码,我们看到,有一个函数fclose,这个函数用来关闭由指针fp指定的文件,同时根据需要刷新缓冲区。当然你还可以检查文件关闭是否成功,关闭成功返回为0,不成功则返回EOF(文件结尾)。在磁盘已满,磁盘被移走或者出现I/O错误等等都会导致关闭失败。

好了很久没有作业了,今天就来一个:

先用只写方式打开一个文件,写入abcd,然后用附加方式打开这个文件写入efgh,大家可以在评论区将代码发出来哦。

更多推荐

怎么用stata打开dta文件_第三十二章、用c语言打开文件