C语言中,什么是缓冲文件系统和文件缓冲区?

Python018

C语言中,什么是缓冲文件系统和文件缓冲区?,第1张

目前c语言使用的文件系统分为缓冲文件系统(标准i

/

o)和非缓冲文件系统(系统i

/

o)。缓冲文件系统的特点是:在内存开辟一个“缓冲区”,为程序中的每一个文件使用,当执

行读文件的操作时,从磁盘文件将数据先读入内存“缓冲区”,装满后再从内存“缓冲区”依此读入接收的变量。执行写文件的操作时,先将数据写入内存“缓冲区”,待内存“缓冲区”装满后再写入文件。

因此当程序运行时虽然进行了写数据操作,但是如果写入的数据没有装满内存中的缓冲区,就不会将数据写入到磁盘文件中。当程序运行结束后,系统就会将缓冲区中的数据写入到磁盘上的文件中,因此就可以看到文件中的内容。

常用的fopen命令就会使用文件读写缓冲区,fclose命令关闭文件,把缓冲区中的内容写入磁盘上的文件中。详见:

http://study.qqcf.com/web/171/19812.htm

buffer就是缓冲区的意思

为什么一般C程序中都不定义他直接拿来用呢?

这个不可能,C语言有着严格的语法。不定义不能拿过来直接用。肯定是在别的地方定义的,如头文件,或者是个全局变量等。一般在编译器里面,右键这个变量,选go to difination(就是转到定义)就可以看到它在哪定义的了。

它一般用来定义数组,因为它本身的意思就是“缓冲区”,在C语言里,数组就是个缓冲区,所以用常常用它。

用它没有别的意思,就是方便记,你可以用shuzu mydata甚至你自己名字的拼音都行,主要是用它别人也很容易懂这个变量是搞啥的。

不是一个概念。这两个东西常在从硬盘读取数据的过程中使用。数据流是指你要从硬盘中读取并放到内存的那一段数据,就跟你打开水龙头然后再关上流出的一段水一样。而缓冲区是指你读取的那段数据在内存中存放的区域。

至于为什么要有缓冲区呢?因为硬盘读写很慢,你如果再一个字节一个字节得读,效率会更低。

而内存的读取速度很快,所以先把整段的文字一口气读下来放到缓冲区以后再一个一个转码(从字节码转成字母数字符号汉字)可以大幅度提高运行效率。