如果有多个线程将固定长度数据(比如4字节地址)写入单个管道并且该管道有一个读取器,是否保证读取器按顺序获取字节?换句话说,管道原子是write()
吗?
答案 0 :(得分:5)
http://pubs.opengroup.org/onlinepubs/009695399/functions/write.html
原子/非原子:写是原子的 如果整个金额写在一个 操作不与数据交错 来自任何其他过程。这很有用 什么时候有多个作家 将数据发送到单个阅读器。 应用程序需要知道有多大 写请求可以预期 原子地进行。这个最大值是 叫{PIPE_BUF}。本卷的IEEE 标准1003.1-2001没有说明是否 写请求超过 {PIPE_BUF}个字节是原子的,但是 需要写入{PIPE_BUF}或 更少的字节应该是原子的。