int select(int nfds,
fd_set *readfds,
fd_set *writefds,
fd_set *exceptfds,
struct timeval *timeout);
的select
,nfds
第一個參數,應該是最大的文件描述符加1,這應該是至少1
但我已經看到了一些代碼設置NFDs的是0,這是使用合法的嗎?
另外,當nfds
爲負數或timeout
包含無效值時,返回值select
設置爲EINVAL
。同樣,它沒有說明當nfds
爲0時發生了什麼。當nfds爲0時,「select」會做什麼?
可能重複的[爲什麼使用select()而不是sleep()?](http://stackoverflow.com/questions/3125645/why-use-select-instead-of-sleep) – hyde