从select的一个死循环谈epoll的ET模式
时间:2014-05-13 14:47:25
收藏:0
阅读:294
——作者:lvyilong316
最近写程序遇到一个问题,就是发现select监听标准输出的时候遇到了死循环,具体程序如下程序一。程序的意图是每当用户在控制台有任何输入,就输出”hello world!”。
最近写程序遇到一个问题,就是发现select监听标准输出的时候遇到了死循环,具体程序如下程序一。程序的意图是每当用户在控制台有任何输入,就输出”hello world!”。
程序一:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/select.h>
int
main(int argc, char *argv[])
{
int maxfdp1;
char buf[256];
fd_set rset;
maxfdp1=STDIN_FILENO+1;
for(;;)
{
FD_ZERO(&rset);
FD_SET(STDIN_FILENO,&rset);
select(maxfdp1,&rset,NULL,NULL,NULL);
if(FD_ISSET(STDIN_FILENO,&rset))
{
printf("hello world!\n");
}
}
return 0;
}
运行结果:
评论(0)