- 论坛徽章:
- 0
|
看了UNIX网络编程第三版,对16章的非阻塞I/O有个疑问。
既然是为了非阻塞,为什么select在调用的时候,这一章的select,都用了NULL的超时参数?
Figure 16.3
......
20 for ( ; ; ) {
21 FD_ZERO(&rset);
22 FD_ZERO(&wset);
23 if (stdineof == 0 && toiptr < &to[MAXLINE])
24 FD_SET(STDIN_FILENO, &rset); /* read from stdin */
25 if (friptr < &fr[MAXLINE])
26 FD_SET(sockfd, &rset); /* read from socket */
27 if (tooptr != toiptr)
28 FD_SET(sockfd, &wset); /* data to write to socket */
29 if (froptr != friptr)
30 FD_SET(STDOUT_FILENO, &wset); /* data to write to stdout */
31 Select(maxfdp1, &rset, &wset, NULL, NULL);
|
Figure 16.19
36 rs = rset;
37 ws = wset;
38 n = Select(maxfd + 1, &rs, &ws, NULL, NULL);
39 for (i = 0; i < nfiles; i++) {
|
[ 本帖最后由 PHizing 于 2008-8-19 12:29 编辑 ] |
|