社区
C语言
帖子详情
关于读linux管道数据的问题.
kornrock
2007-07-22 10:34:12
read函数读一个阻塞模式的管道,当管道中无数据时,read函数返回0还是阻塞.?
...全文
115
2
打赏
收藏
关于读linux管道数据的问题.
read函数读一个阻塞模式的管道,当管道中无数据时,read函数返回0还是阻塞.?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
星羽
2007-07-22
打赏
举报
回复
所以
或者在open的时候,传入O_NONBLOCK参数,按非阻塞方式打开
星羽
2007-07-22
打赏
举报
回复
阻塞
linux
管道
pipe详解
管道
管道
的概念:
管道
是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成
数据
传递。调用pipe系统函数即可创建一个
管道
。有如下特质: 1. 其本质是一个伪文件(实为内核缓冲区) 2. 由两个文件描述符引用,一个表示
读
端,一个表示写端。 3. 规定
数据
从
管道
的写端流入
管道
,从
读
端流出。
管道
的原理:
管道
实为内核使用环形队列机制,借助内核缓冲区(4k)实现。
管道
的局限性: ...
linux
中
管道
的概念,浅谈
Linux
管道
管道
(pipe)是一个我们在学习
Linux
命令行的时候就会引入的一个很重要的概念。
管道
是UNIX环境中历史最悠久的进程间通信方式,从本质上说,
管道
也是一种文件,也是遵循UNIX的“一切皆文件”的原则设计的。虽然实现形态上是文件,但是
管道
本身并不占用磁盘或者其他外部存储的空间。在
Linux
的实现上,它占用的是内存空间。所以,
Linux
管道
实际上就是一个操作方式为文件的内存缓冲区。一、
Linux
管道
分...
Linux
管道
读
写阻塞
来自度娘: 写
管道
时: 向
管道
中写入
数据
: 向
管道
中写入
数据
时,
linux
将不保证写入的原子性,
管道
缓冲区一有空闲区域,写进程就会试图向
管道
写入
数据
。如果
读
进程不
读
走
管道
缓冲区中的
数据
,那么写操作将一直阻塞。 对于没有设置阻塞标志的写操作:(1)当要写入的
数据
量不大于PIPE_BUF时,
Linux
将保证写入的原子性。如果当前FIFO空闲缓冲区能够容纳请求写入的字节
Linux
学习笔记-
管道
的
读
写特性
目录 理论 栗子 理论
管道
的
读
写特性 1.通过打开两个
管道
来创建一个双向的
管道
; 2.
管道
默认是阻塞性的,当进程从
管道
中
读
取
数据
,若没有
数据
进程会阻塞; 3.当一个进程往
管道
中不断地写入
数据
但是没有进程去
读
取
数据
,此时只要
管道
没有满是可以写的,但若
管道
放满
数据
的则会报错; 下面举两个例子! 不完整
管道
: 1.当
读
一个写端已被关闭的
管道
时,在所有
数据
被
读
取后,rea...
linux
_
管道
学习-pipe函数-
管道
的
读
写-fpathconf函数
管道
是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成
数据
传递。调用pipe系统函数即可创建一个
管道
。int pipe(int pipefd[2]); 创建一个
管道
。①
读
管道
: 1.
管道
中有
数据
,read返回实际
读
到的字节数。2.
管道
中无
数据
:
管道
写端被全部关闭,read返回0 (好像
读
到文件结尾) 写端没有全部被关闭,read阻塞等待(不久的将来可能有
数据
递达,此时会让出cpu) 写
管道
:
管道
读
端全部被关闭, 进程异常终止(也可使用捕捉SIGPIPE信号,使进程不终止)
管道
读
端没有全部
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章