给定以下代码,期望每次select()调用时都有一秒钟的睡眠.但是,睡眠仅在第一次呼叫时发生,所有后续呼叫都不会导致延迟:
#include <stdio.h>
#include <stdlib.h>
int main()
{
struct timeval tv;
tv.tv_sec = 1;
tv.tv_usec = 0;
for (;;)
{
/* Sleep for one second */
int result=select(0, NULL, NULL, NULL, &tv);
printf("select returned: %d\n",result);
}
}
Run Code Online (Sandbox Code Playgroud)
为什么所有的电话select()除了第一次立即返回?
编译器:gcc 4.9.2
操作系统:Centos 7(Linux)
内核信息:3.10.0-327.36.3.el7.x86_64