【发布时间】:2018-08-14 03:14:56
【问题描述】:
根据linuxman page,
EPOLLHUP
从管道或流套接字等通道读取时, 此事件仅表示对等方关闭了其通道的末端。
EPOLLRDHUP
Stream socket peer 关闭连接,或关闭写入一半连接。
我几乎无法区分EPOLLHUP 和EPOLLRDHUP。
对我来说,每当使用 EPOLLRDHUP 时,EPOLLHUP 都可以使用相同的语义来代替。
我说的对吗?如果不是,有什么解释吗?
【问题讨论】:
-
EPOLLHUP 意味着你不能写,EPOLLRDHUP (and read()==0) 意味着你不能读。 medium.com/where-the-flamingcow-roams/…
-
没有。 EPOLLHUP 意味着您半关闭套接字,对等方也半关闭套接字。 (所以你既不能读也不能写)见stackoverflow.com/questions/52976152/…。
-
这两个标志的解释很好:stackoverflow.com/a/6438173/7888101
-
它们的含义略有不同,需要不同的处理方式。阅读关机手册页 (2)
标签: c linux networking api-design epoll