首页 > 代码库 > 从select的一个死循环谈epoll的ET模式

从select的一个死循环谈epoll的ET模式

——作者:lvyilong316
最近写程序遇到一个问题,就是发现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;

}

运行结果: