linux手册指出:
The operation of select() and pselect() is identical, other than these
three differences:
(i) ...
(ii) select() may update the timeout argument to indicate how much time
was left. pselect() does not change this argument.
(iii) ...
它说你可以更新它,但我怎么能这样做? 我再次使用相同的参数调用select()?
答案 0 :(得分:2)
答案 1 :(得分:1)
您不应在通话期间修改超时结构的内容。但是,您可以停止选择,并使用新的超时重新启动它。
通常,当您使用select
创建多线程应用程序时,您可以提供一种方法来中断此调用以更新已处理文件描述符的列表。例如,这可以使用插座对来实现。套接字对的一个套接字用于控制线程,另一个套接字始终添加到fd_set
。虽然它是一个不同的主题。