怎么让非ET模式的epoll事件变成不再激活状态

如何让非ET模式的epoll事件变成不再激活状态
网络编程,非阻塞模式,epoll非ET模式
调用epoll_wait接收数据
客户端发一次数据"Hello, World"然后立刻关闭
服务器接收到客户端发送的Hello, World,打印

正常情况下应该只触发EPOLLIN然后打印一次
但是现在epoll_wait却一直触发EPOLLIN事件,我明明已经调用过recv,应该不会再有事件激活了啊。

求问各位大大:
1.该怎么办,让epoll_wait停止触发EPOLLIN事件
2.客户端Sock绑定的是EPOLLIN|EPOLLHUP,断线后会触发EPOLLHUP吗?

------解决方案--------------------
因为客户端关闭,服务端read始终返回0并且可读,一旦read==0就应该close(fd);然后从epoll中remove掉这个fd.
------解决方案--------------------
探讨

引用:

因为客户端关闭,服务端read始终返回0并且可读,一旦read==0就应该close(fd);然后从epoll中remove掉这个fd.


哦对,谢谢了,我试了一下,原来如果socket连接中的话若无数据返回的是-1,错误码是EAGAIN。

请问 EPOLLHUP 会不会在客户端掉线的时候激活呢?