私は、TCPソケットを介して両側が通信するクライアントサーバーアプリケーションを持っています。
接続を適切に確立し、クライアントによってソケットにデータが書き込まれる前にサーバーをクラッシュさせます。
私が見ているのは、最初のwrite()
試行 (クライアント側) が成功し、実際に書き込まれたバイト数が返されるのに対して、次の試行では (期待どおり) -1
(a を受け取るSIGPIPE
) とerrno=EPIPE
.
write()
ソケットが既に閉じられている場合でも、最初の方法が成功するのはなぜですか?
EDITwrite()
すべてがうまくいっているかのように、次のものが正の戻り値を持つ
こともあります。