69,336
社区成员
发帖
与我相关
我的任务
分享
#include <sys/select.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <unistd.h>
int
main(){
char sendbuf[1024];
struct timeval tv;
fd_set readfds;
tv.tv_sec=10;
tv.tv_usec=500000;
FD_ZERO(&readfds);
FD_SET(0, &readfds);
fprintf(stdout, "server:");
// fflush(stdout);
select(0+1, &readfds, NULL, NULL, &tv);
if(FD_ISSET(0, &readfds)){
gets(sendbuf);
}
else
{
printf("Time out .\n");
}
return 0;
}
gcc试了下
加上fflush(stdout); 应该是没问题的
# ./a.out
server:Time out .
不加的话就会后输出,符合上面说的
# ./a.out
test
server:[root@dc-work workspace]#
不知到楼主是什么编译器标准输出有缓冲的, 后面加一句 fflush(stdout); 来冲刷一下吧