为什么在poll()函数中使用POLLRDHUP事件标志之前需要定义_GNU_SOURCE宏?

Don*_*ild 6 c sockets opensuse

poll()在我的程序中使用函数,我读了这个链接,使用POLLRDHUP标志你必须_GNU_SOURCE在所有头文件包含之前定义.我需要这个标志,以便轮询套接字可以告诉我客户端是否挂起,以便我可以终止相应的线程.

顺便说一句,我正在编写一个可以同时处理多个客户端的'echo'服务器的C程序,我在OpenSuse Linux Enterprise Server 10.3(x86_64)上使用GCC 4.1.2.

use*_*342 9

POLLRDHUP是一个非标准扩展(它从POSIX中丢失).为防止污染命名空间,除非您通过定义_GNU_SOURCE明确请求,否则不会显示非标准扩展.

更多详细信息_GNU_SOURCE可以在之前的StackOverflow答案中找到,例如此答案.