C语言中流是什么意思?

Python09

C语言中流是什么意思?,第1张

C语言的I/O系统为用户提供了一个接口,该接口与实际的存取设备无关。只是设备的一个抽象表示形式。这个抽象的接口称为流,实际的设备称为文件

C文件系统可以与各种设备一起使用,如打印机、硬盘、终端等,缓冲文件系统可以将每个设备转换成逻辑设备,即所谓的流。所有的流工作方式类似,所以很容易操作不同的设备。流有2种类型:文本流和二进制流。

文本流是一系列字符,可以由多行构成,每行由一个换行符终止。

二进制流是一系列字节,并与外部设备上的字节一一对应。

流是程序输入或输出的一个连续的字节序列,设备(例如鼠标、键盘、磁盘、屏幕、调制解调器和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现----不一定是物理磁盘文件,还可以是对应于某个输入/输出源的逻辑文件。

首先,你要明白什么是“流”。直观地讲,流就像水一样,不存在大小问题,也避免了完整性问题。非流的数据传输,比如你下载一张图片,需要整幅图片下载完之后才能使用,而流则不同,就像水,你取一杯也可以用,取一桶也可以用。所以说,流是一种数据传输的模式。

而输入流和输出流,差别在于出和入,是相对于程序而言的。“输入流式得到数据,输出流是输出数据”,这种说法是对的。你把问题想复杂了,输入是程序得到外部数据,输出是程序向外部传输数据,二者没有必然的联系,都是流,差别是方向不同,也就是说,程序可以只有输入流而没有输出流,或者只有输出流而没有输入流。

另外补充一下,流的好处是接收方可以提前处理,缩短等待时间,提高速度。比如你上youku看视频,并不是整个视频下载好了才播放的,而是下一点播一点。但是不是所有应用都适合,比如加密了的文件,往往需要整个加密文件接收完了才能解密。