关于select 函数,网上有很多例子。函数原型是:
int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);
有个参数是 readfds和writefds,我在调用这个函数的时候,两个都是设为非空,结果,运行老是出错,不是想要的结果。
所以在使用select 函数时, 这三个 fd_set 只能一个为非空,。
像这样调用,就得不到想要结果 : select(sockfd, rfds, wfds, NULL, NULL).
本文探讨了在网络编程中常用的select函数的正确使用方法。通过具体的案例分析指出,在调用select函数时,readfds、writefds及exceptfds三个参数中通常只有一个会被设置为非空,若同时设置多个参数为非空可能导致程序行为不符合预期。

被折叠的 条评论
为什么被折叠?



