流和缓冲区的问题

renyaoming 2009-01-18 02:29:23

谁能给我贴些流和缓冲区的概念的文章
谢谢了
我是初学者
...全文
250 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
waizqfor 2009-01-18
  • 打赏
  • 举报
回复
流(streams)在I/O系统中是一种I/O机制和功能,或者称为streams子系统。它本身并不是一个物理设备的概念。
引入流的目的:
传统的字符设备驱动程序框架有许多缺点,这表现在:
。内核与字符设备驱动程序间接口的抽象层次太高
。内核没有为字符设备提供可靠的缓冲区分配和管理功能
。许多系统对字符设备的界面是把数据看成是FIFO(先进先出)的字节流,因此没有识别消息边界,区分普通设备和控制信息,以及判定不同消息优先级的能力,也没有字节流流量控制
。在网络数据传输设备中这些问题更突出。网络中数据传输是基于消息或数据分组的。
流的概念:
用通讯中的术语来说,流是全双工的处理过程,它是内核中驱动程序和用户进程之间的数据传输通道。
从流的构造上来说,它由一个流头,一个流驱动程序尾,以及其间的零个或若干个可选模块构成 。流头是一个用户级接口,它允许用户应用程序通过系统调用接口来访问流。驱动程序尾与底层设备通信。在流的中间的模块是处理数据的
waizqfor 2009-01-18
  • 打赏
  • 举报
回复
缓冲区(buffer)这个中文译意源自当计算机的高速部件与低速部件通讯时,必须将高速部件的输出暂存到某处,以保证高速部件与低速部件相吻合.

后来这个意思被扩展了,成为"临时存贮区"的意思,所以才有
"很多文章说是缓冲区,为什么不说成指向char的指针",也才有vcmute(横秋)的"缓冲意味着先在这地方用着,用完就释放"这类的说法.

实际上,随着英语语意的扩展,在这种情况下的BUFFER译做临时存贮区似乎更能反映实际意思.至于是
char* buf=new char [1024];
或是
char buf[1024];
对于此词的语意是没有影响的.


韦氏词典的解释:
buffer 5 : a temporary storage unit (as in a computer);


流,就像从键盘输入的就是一个一个的字符流了,所以键盘就称流设备,而硬盘,输入数据是一块(如512字节)的传输的,所以称为块设备

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧