我知道如何监控两个文件描述符,但是 4 或 5 个文件描述符怎么样?
以下是我如何使用 2 个文件描述符来实现这一点。
fd_mon = (fd1 > fd2 ? fd1 : fd2) + 1;
select(fd_mon, &readfds, NULL, NULL, NULL);
如何监控 3 个或更多文件描述符?
最佳答案
使用FD_SET
宏将文件描述符添加到您传递给select
的集合中。您还需要它的 friend FD_ZERO
、FD_ISSET
和 FD_CLR
。在上面的情况下,只需继续为每个文件描述符和同一组调用 FD_SET 即可。
Google - “man select”,它甚至有一个例子!我不知道您对 *NIX 有多熟悉,但 man
(手册的缩写)是操作系统内置的帮助系统。它会经常回答这些有关系统调用的问题。您可能必须在某些发行版中安装它,例如,我认为 Ubuntu 没有默认安装所有开发手册页。
关于c - Select() 监视 3 个或更多文件描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276387/