真正的c语言高手请进!

来源:百度知道 编辑:UC知道 时间:2024/06/27 12:24:23
在C文件中,提到的流是什么意思呢?我需要具体解释!

要明白流是什么,得先理解计算在硬盘和在内存是点样储存数据的.

在物理层,略过不提,内在和硬盘的物理实现是不同的

更上一层,物理抽象层,众所周知,在计算机中,所有的数据最终表示为01.

关于这些0和1如何组织,就涉及计算机文件系统,计算机内存空间的管理.具体资料自己找.现在只要知道,文件系统,内存空间是有限的,而对存储空间的管理是有内在的逻辑的.这个逻辑表现为对储存空间的编址及管理.

一个文件存储在硬盘上,或者存储在内存上,占据的一块空间.要对这个文件的操作,就是对储存有这个文件的数据空间进行操作.要做到这个,就要找到这个空间的地址. 可以通过文件名找到. 打开文件,就是把指针指向该空间的开始地址.

无论内存空间内的数据如何组织,在概念层次上,数据的组织是线性.
要读取文件内容,得有数据指针.移动该指针就可以找到特定的内容.

由于读取的数据通常不是一位的,而是一段地址空间的数据,指针就从该空间从头移动到尾读出.

现在来看这段被读出的数据,注意,是一位位读出的.也就是指针一位位地从数据空间地移动, 更加形象地,以指针为参照物,数据是一位位地流过指针的.
故而,数据流的概念就是这样形象地得出.

--------------------------------
所以,流的本质就是指一段地址空间内的数据;
从流中加入一些数据,就是向这个数据空间加入数据;

-------------
注:上面提到的数据空间,内存空间,地址空间,注意分别,大体上它们指同一样东西

其实流就是一块缓冲,操作系统提供的系统调用一般是要指定长度的,而标准库为使用方便和提高效率,减少硬盘读写,使用缓冲处理I/O