我在我的程序中使用poll()
函数,我读this link要使用POLLRDHUP
标记,您必须在包含所有头文件之前定义_GNU_SOURCE
。我需要这个标志,以便轮询套接字可以告诉我客户端是否挂起,以便我可以终止相应的线程。
顺便说一句,我正在编写一个可以同时处理多个客户端的'echo'服务器的C程序,我在OpenSuse Linux Enterprise Server 10.3(x86_64)上使用GCC 4.1.2。
答案 0 :(得分:9)
POLLRDHUP
是非标准扩展程序(missing from POSIX)。为防止污染命名空间,除非您defining _GNU_SOURCE
明确请求,否则不会显示非标准扩展。
有关_GNU_SOURCE
的更多详细信息,请参阅之前的StackOverflow答案such as this one。
答案 1 :(得分:2)
_GNU_SOURCE
是一个功能测试宏,通过防止暴露非标准定义,可用于创建可移植应用程序。