由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - select的timeout怎么不work
相关主题
问个socket编程中select()的问题。c的问题
linux select(): can file descriptors be dynamtic ?急:问一个SQL的题目
is perror() non-buffered io in linux ? (转载)ask a Javascript question
再问一个free()的问题A thread question
A question about singleton[转载] 简单的题都不敢做了.
请教一道c/c++题little endian vs big endian
printf("%s\n", NULL)的结果GCC 居然允许变量长度的向量
请教一道题 (转载)a question about CGI
相关话题的讨论汇总
话题: timeout话题: select话题: null话题: printf话题: work
进入Programming版参与讨论
1 (共1页)
p**p
发帖数: 3386
1
在一个while循环里面用select来判断数据是否准备好,设置了5秒的timeout。
照理说如果没有设备准备好,select等待5秒后会出现timeout,然后返回0。但是在运
行中select不停的返回0,根本不等5秒。这是怎么回事啊?下面是代码:
n = select(max_fd,&input, NULL,NULL,&timeout);
if (n<0) {perror("select");exit(-1);}
if (n==0) {
printf("Read timeout\n");
}
else printf("Data is ready\n");
p**p
发帖数: 3386
2
我明白了。刚刚看了看man page,发现select是要修改timeout值的,只有pselect不会
。因此每次调用select以后都需要重新设置timeout.否则下次调用的时候相当于
timeout被设置为0,就会出现上面的问题了。
1 (共1页)
进入Programming版参与讨论
相关主题
a question about CGIA question about singleton
全局对象请教一道c/c++题
谁给解释下这个比较弱的问题?printf("%s\n", NULL)的结果
一个简单的算法问题?请教一道题 (转载)
问个socket编程中select()的问题。c的问题
linux select(): can file descriptors be dynamtic ?急:问一个SQL的题目
is perror() non-buffered io in linux ? (转载)ask a Javascript question
再问一个free()的问题A thread question
相关话题的讨论汇总
话题: timeout话题: select话题: null话题: printf话题: work