我正在Linux上调试应用程序。它具有几个线程,这些线程会定期调用select系统调用:strace
显示:
select(0, NULL, NULL, NULL, {1, 342414})
所以
nfds=0
。我以为nfds是在readfds
,writefds
和exceptfds
中加1的任何集合中出现的最高文件描述符数。它不能是标准输入(fd=0
),因为这将具有nfds=1
。那么在这种情况下
nfds=0
是什么意思?谢谢!
最佳答案
通常select
会休眠,直到超时到期或在文件描述符之一上发生事件为止。如果没有文件描述符,则超时是唯一剩余的行为。
我在本地的select(2)
联机帮助页甚至包含该文本