答案1
我自己尝试找出 Linux 中原子写入的大小,最有帮助的阅读材料来自此Unix Stack Exchange 答案
但总而言之
这是来自人 7 管。
POSIX.1-2001 规定少于 PIPE_BUF 字节的 write(2) 必须是原子的:输出数据将作为连续序列写入管道。超过 PIPE_BUF 字节的写入可能是非原子的:内核可能会将数据与其他进程写入的数据交错。POSIX.1-2001 要求 PIPE_BUF 至少为 512 字节。(在 Linux 上,PIPE_BUF 为 4096 字节。)
因此在 Linux 中原子写入的大小为 4096 字节。
您可以在此处找到不同操作系统的 PIPE_BUF 大小的详细表格 http://ar.to/notes/posix#pipe-buf。