FD_ZERO(fd_set *fdset) 将指定的文件描述符集清空,在对文件描述符集合进行设置前,必须对其进行初始化,如果不清空,由于在系统分配内存空间后,通常并不作清空处理,所以结果是不可知的。 FD_SET(fd_set *fdset) 用于在文件描述符集合中增加一个新的文件描述符。 FD_CLR(fd_set *fdset) 用于在文件描述符集...
FD_ZERO(fd_set *fdset) 将指定的文件描述符集清空,在对文件描述符集合进行设置前,必须对其进行初始化,如果不清空,由于在系统分配内存空间后,通常并不作清空处理,所以结果是不可知的。 FD_SET(fd_set *fdset) 用于在文件描述符集合中增加一个新的文件描述符。 FD_CLR(fd_set *fdset) 用于在文件描述符集...
int select(int maxfdp1, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, structtimeval*tvptr); int FD_ZERO(fd_set *fdset);---删除集合fdset中的所有文件描述符 int FD_SET(int fd, fd_set *fdset);---加入fd到集合fdset中 int FD_CLR(int fd, fd_set *fdset);---删除集合f...
先调用宏FD_ZERO将指定的fd_set清零,然后调用宏FD_SET将需要测试的fd加入fd_set,接着调用函数select测试fd_set中的所有fd,最后用宏FD_ISSET检查某个fd在函数select调用后,相应位是否仍然为1。 以下是一个测试单个文件描述字可读性的例子: int isready(int fd) { int rc; fd_set fds; struct tim tv; FD_...
void FD_ZERO(fd_set *fdset); 宏FD_SET设置文件描述符集fdset中对应于文件描述符fd的位(设置为1),宏FD_CLR清除文件描述符集fdset中对应于文件描述符fd的位(设置为0),宏FD_ZERO清除文件描述符集fdset中的所有位(既把所有位都设置为0)。使用这3个宏在调用select前设置描述符屏蔽位,在调用select后使用FD...
FD_ZERO(&wfd); FD_SET(socka,&rfd);//把socka放入读描述符集 FD_SET(sockb,&rfd);//把sockb放入读描述符集 FD_SET(socka,&wfd);把socka放入写描述符集 FD_SET(sockb,&wfd);把sockb放入写描述符集 if(SOCKET_ERROR!=select(0,&rfd,&wfd,0,0)) //测试这两个描述符集,永不超时 其中rfd...
FD_ZERO(fd_set *fdset)将指定的文件描述符集清空,在对文件描述符集合进行设置前,必须对其进行初始化,如果不清空,由于在系统分配内存空间后,通常并不作清空处理,所以结果是不可知的。 FD_SET(fd_set *fdset)用于在文件描述符集合中增加一个新的文件描述符。 FD_CLR(fd_set *fdset)用于在文件描述符集合中...
void FD_ZERO(fd_set *fdset); 宏FD_SET设置文件描述符集fdset中对应于文件描述符fd的位(设置为 1),宏FD_CLR 清除文件描述符集 fdset中对应于文件描述符fd的 位(设置为0),宏FD_ZERO 清除文件描述符集 fdset中的所有位(既把所有位都设置为0)。使用这3个宏在调用select前设置描述符屏蔽位, 在调用sele...
FD_ZERO(&set);FD_SET(fd, &set);FD_CLR(fd, &set);FD_ISSET(fd, &set);过去,一个fd_set通常只能包含<32的fd(文件描述字),因为fd_set其实只用了一个32位矢量来表示fd;现在,UNIX系统通常会在头文件<sys/select.h>中定义常量FD_SETSIZE,它是数据类型fd_set的描述字数量,其值通常是1024,这样...
voidFD_ZERO(fd_set*set); /*返回:如果在 fdset 中设置 fd,则返回非零值,否则返回 0*/ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. select() 函数用于在大量文件描述符上执行同步的、多路复用的 I/O 。 nfsd ...