首页 > 代码库 > 从select的一个死循环谈epoll的ET模式
从select的一个死循环谈epoll的ET模式
——作者: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;
}
运行结果:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。