私が原子を意味するのは成功か失敗か何もしません。複数のプロセス/スレッドがwrite(fd, buf, len)
を呼び出す場合、私は知っているsocketpair(AF_LOCAL, SOCK_STREAM)
SOCK_SEQPACKETへの書き込みはアトミックですか?
は、アトミックではない、write()
の戻り値は多分> 0 && < len
と秩序の外にデータを引き起こします。
socketpair(AF_LOCAL, SOCK_SEQPACKET)
によって作成された複数のプロセス/スレッドwrite(buf, len)
〜sock_fd
がある場合は、それはアトミックですか?
私はLinuxのマニュアルをチェックし、len
がPIPE_BUF
より小さい場合、write/writev
がアトミックであることを示すpipe()
について何かを見つけました。
socketpair
については何も見つかりませんでした。私はテストコードを書いて、それががアトミックであると思われ、ランダムな長さのバッファをfd
に書き出し、戻り値が常に-1
またはlen
になることを発見しました。