小编use*_*147的帖子

在什么条件下管道读取原子?

man pipe -s7文件很好地写入管道.对我来说重要的部分是,如果设置了O_NONBLOCK,写入只会部分完成,并且写入长度大于PIPE_BUF.

但是,关于读取结束没有任何说法.

我在写端以阻塞模式通过管道发送表示事件的结构.在读取结束时,我正在非阻塞模式下的更新循环中处理这些事件(和其他事物).

由于我的结构小于PIPE_BUF,所以会读取ALWAYS读取整数个结构吗?或者我是否需要处理只读部分结构的可能性?

常识告诉我,读取行为将反映记录的写入行为,但如果指定了这一点,我会更高兴.

我正在使用Linux(内核3.8,x86_64).但重要的是我的代码可以跨不同的UNIX风格和CPU架构移植.

谢谢.克里斯.

c posix pipe atomic

11
推荐指数
1
解决办法
1161
查看次数

标签 统计

atomic ×1

c ×1

pipe ×1

posix ×1