看《APUE》时多次出现“流”这一概念,那么什么是流呢? 先总结下关于流的一些翻译:
1,流是与磁盘或其他外围设备关联的数据的源或目的地。
2,流是(表达)读写数据的一种可移植的方法,它为一般的I/O操作提供了灵活有效的手段。一个流是一个由指针操作的文件或者是一个物理设备,而这个指针正是指向了这个流。
3,不管是交互与诸如终端盒磁带驱动器之类的物理设备,还是存取与由结构化存储设备支撑的文件,输入和输出(信息)都被映射为逻辑数据流,而流的属性却远不是诸多输入输出属性的统一。
4,ANSI C进一步对I/O的概念进行了抽象。就C程序而言,所有的I/O操作知识简单地从程序移进或移出字节的事情。因此毫不惊奇的是,这种字节流便被称为流。程序只需要关心创建正确的输出字节数据,以及正确的解释从输入数据的字节数据。特定I/O设备的细节对程序员是隐藏的。
定义大致如上,下面总结一下。
1, 流是一个抽象的概念,并不是一个物理设备的概念,如果用某个看得见摸得着的物理设备做参考来理解流的话那就大错特错了。
2, 流是对I/O系统中的一种I/O机制和功能的抽象。就像运输工具是对一切运动载体的抽象一样。
3, 流是一种“动”的概念,静止存储在介质上的信息只有当他按一定的序列准备“运动”时才成为流。(静止的信息具有流的潜力,但不一定是流,就像没有汽油的汽车一样,它具有成为运输工具的潜力,但还不是运输工具)。流有源头也有目的地(并且他将源头和目的地相关联),并且一定带有某种信息(好像说了句废话)。