用select 定时等待的一个注意点

struct timeval delay;
delay.tv_sec = 0;
delay.tv_usec = 100000; // 100 ms

while (1) {
    // ......................
    select(0, NULL, NULL, NULL, &delay);
}

上面的代码是不能达到每轮循环等待100ms 的预期的,因为调用select 后,delay.tv_sec 和 delay.tv_usec 被修改为0 了。

delay需要在循环内赋值,才能达到预期。

 

posted @ 2017-04-27 17:00  lausaa  阅读(980)  评论(0编辑  收藏  举报