apue实例函数的疑问,关于select函数,谢谢
select函数返回的是准备好的fd的数量, 如果select函数返回后(假设返回的fd可读), 其中之一的fd没有去read,那么等下一次的select返回后,此fd还会再再被返回可读吗,也就是说是通知一次,还是如果没有read的话持续通知,记得epoll有选项可以调节这种情况,可以通知一次,或者持续通知。 还有感觉这个for循环你关于select返回的处理有问题,
for(;;)
{
if(select() < 0)
log_sys;
if(FD_ISSET(listenfd, &rset))
{
.../* 处理新建连接 */
continue; //感觉此处的continue完全多余, 很有可能既有新连接,又有可读的消息到达。
}
for()
{
/* 处理已建立的连接收到的信息 */
}
}
for(;;)
{
if(select() < 0)
log_sys;
if(FD_ISSET(listenfd, &rset))
{
.../* 处理新建连接 */
continue; //感觉此处的continue完全多余, 很有可能既有新连接,又有可读的消息到达。
}
for()
{
/* 处理已建立的连接收到的信息 */
}
}
...全文
相关推荐
APUE.zip_apue
**网络编程**:这部分涉及套接字编程,包括TCP/IP和UDP协议的客户端和服务器实现,socket选项的设置,以及多路复用I/O(select、poll、epoll)等。
apue.rar_stevens
APUE是UNIX程序员的必备参考书籍,它不仅提供了详细的API介绍,还通过大量的实例代码帮助读者理解并应用这些知识。
APUE(UNIX 环境高级编程 PDF 文档)
在APUE中,Stevens详细讲解了TCP/IP协议栈,包括套接字接口的使用,如socket、bind、listen、accept、connect、send、recv等函数,以及多路复用技术(select
APUE源码
APUE源码展示了如何使用这些系统调用,同时,它也演示了如何通过标准C库函数封装这些调用,使得编程更加方便。理解这些调用和库函数的内部工作原理,有助于我们编写出高效且健壮的程序。3.
apue 2e code
**信号处理**:APUE详细阐述了信号的概念,如何注册信号处理函数,以及信号在进程控制和异常处理中的应用。9.


