为什么不选择调整超时参数?

时间:2017-07-15 20:25:45

标签: select posix posix-select

select / pselect [1]的手册页以及本LWN文章[2]明确提到对库函数pselect的调用不会修改超时参数,而可能会select调用,具体取决于实施情况。 LWN文章提到系统调用pselect确实修改了超时,库函数将其隐藏在调用者之外。

为什么指定库方法pselect不修改超时参数?知道定时方法是否有时间返回似乎是一个有用的功能。

例如,我想等待一些时间规则来接收X字节。我可以实现一个循环,调用pselect来等待数据,累积任何数据读取,累积等待的时间,然后根据是否读取了足够的字节或已经过了足够的时间来决定是否再次循环。由于pselect不会使用剩余时间修改超时参数,因此我必须调用gettimeofday来计算剩余时间窗口。

[1] http://man7.org/linux/man-pages/man2/select.2.html

[2] https://lwn.net/Articles/176911/

0 个答案:

没有答案