——作者: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;
}
运行结果:
从select的一个死循环谈epoll的ET模式,布布扣,bubuko.com
时间: 2024-10-14 00:04:18