epoll_ctl のマニュアルから:
EPOLLRDHUP (Linux 2.6.17 以降)
ストリーム ソケット ピアが接続を閉じたか、接続の半分を書き込んでシャットダウンしました。(このフラグは、エッジ トリガー監視の使用時にピアのシャットダウンを検出する単純なコードを記述する場合に特に役立ちます。)
recv のマニュアルから:
受信可能なメッセージがなく、ピアが正常なシャットダウンを実行した場合、recv() は 0 を返します。
上記の両方が同じシナリオをカバーしているように思えます.EPOLLRDHUPイベントを最初にキャッチする限り、長さ0の read() または recv() を受け取ることはありません(したがって、気にする必要はありません)などをチェックします)。しかし、これは真実であると保証されていますか?