C 语言文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C 语言文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )相关的知识,希望对你有一定的参考价值。





一、C 语言中的文件操作函数



读取 文本文件 可以使用 getc , fgets , fscanf 函数 , 向 文本文件 写出数据可以使用 putc , fputs , fprintf 函数 ;

读取 二进制文件 可以使用 fread 函数 , 向 二进制文件 写出数据可以使用 fwrite 函数 ;





二、磁盘与内存缓冲区



上述所有读写文件的函数 , 都是缓冲区函数 , 即 C 语言中的文件操作 , 都是缓冲区函数 ;


磁盘 是由 操作系统 进行读写的 , 用户写的程序 , 不能直接操作磁盘 ;

操作系统 提供 读写文件的 系统调用 接口 , 在该接口上 是 C 语言的库函数 , 最上层就是 用户程序 ;


如果要操作硬件磁盘 , 就需要知道磁盘的驱动程序 , 磁盘扇区操作等 , 这就比较复杂了 ;


C 语言库函数 中 , 维护了一个缓冲区 , 这个缓冲区是 内存 中的缓冲区 ;

使用 C 语言文件操作函数 读写的 数据 , 不是直接来自磁盘 , 而是来自 内存中缓冲区 ;





三、缓冲区工作机制



缓冲区工作机制 :

如果 缓冲区大小 64KB , 假如使用 C 语言库函数 fread 读取一个字节数据 , 实际上会从磁盘文件中读取 64KB 数据 , 放入内存缓冲区中 ;

这是因为 读写内存的效率 远远高于 读写磁盘的效率 ;

这样的好处是 , 读取第 2 个字节时 , 可以直接从内存中读取 , 不需要再次读写磁盘 ;


该机制可以 增加用户程序的执行效率 , 减少磁盘访问次数 ;

磁盘有读写寿命 , 读写次数到了 , 磁盘就会报废 ;


缓冲区内容写入磁盘的时机 :

  • 缓冲区满了
  • 调用 fclose 关闭文件函数

以上是关于C 语言文件操作 ( C 语言中的文件操作函数 | 磁盘与内存缓冲区 | 缓冲区工作机制 )的主要内容,如果未能解决你的问题,请参考以下文章

怎么用C语言对文件操作用特定内容替换其中某些内容

C语言怎样对文件进行操作

C语言最文件操作函数(2)

C 语言文件操作 ( getc 和 putc 函数 )

C语言万字讲解 从零到精通 (文件操作与文件函数)

怎样用C语言打开文件夹(源代码)