修改 ch12 错别字

This commit is contained in:
上官永石
2022-07-26 16:09:55 +08:00
parent 59b1ef6dcd
commit c0c529f48c

View File

@@ -83,7 +83,7 @@ select 函数的使用方法与一般函数的区别并不大,更准确的说
- `FD_ZERO(fd_set *fdset)`:将 fd_set 变量所指的位全部初始化成0
- `FD_SET(int fd,fd_set *fdset)`:在参数 fdset 指向的变量中注册文件描述符 fd 的信息
- `FD_SLR(int fd,fd_set *fdset)`:从参数 fdset 指向的变量中清除文件描述符 fd 的信息
- `FD_CLR(int fd,fd_set *fdset)`:从参数 fdset 指向的变量中清除文件描述符 fd 的信息
- `FD_ISSET(int fd,fd_set *fdset)`:若参数 fdset 指向的变量中包含文件描述符 fd 的信息,则返回「真」
上述函数中FD_ISSET 用于验证 select 函数的调用结果,通过下图解释这些函数的功能:
@@ -128,7 +128,7 @@ struct timeval
};
```
本来 select 函数只有在监视文件描述符发生变化时才返回。如果未发生变化,就会进入阻塞状态。指定超时时间就是为了防止这种情况的发生。通过上述结构体变量,将秒数填入 tv_sec 的成员,将微妙数填入 tv_usec 的成员,然后将结构体的地址值传递到 select 函数的最后一个参数。此时,即使文件描述符未发生变化,只要过了指定时间,也可以从函数中返回。不过这种情况下, select 函数返回 0 。因此,可以通过返回值了解原因。如果不设置超时,则传递 NULL 参数。
本来 select 函数只有在监视文件描述符发生变化时才返回。如果未发生变化,就会进入阻塞状态。指定超时时间就是为了防止这种情况的发生。通过上述结构体变量,将秒数填入 tv_sec 的成员,将微妙数填入 tv_usec 的成员,然后将结构体的地址值传递到 select 函数的最后一个参数。此时,即使文件描述符未发生变化,只要过了指定时间,也可以从函数中返回。不过这种情况下, select 函数返回 0 。因此,可以通过返回值了解原因。如果不设置超时,则传递 NULL 参数。
#### 12.2.4 调用 select 函数查看结果
@@ -136,7 +136,7 @@ select 返回正整数时,怎样获知哪些文件描述符发生了变化?
![](https://s2.ax1x.com/2019/01/23/kA06dx.png)
由图可知select 函数调用完成,向其传递的 fd_set 变量将发生变化。原来为 1 的所有位将变成 0但是发生了变化的文件描述符除外。因此可以认为值仍为 1 的位置上的文件描述符发生了变化。
由图可知select 函数调用完成,向其传递的 fd_set 变量将发生变化。原来为 1 的所有位将变成 0但是发生了变化的文件描述符除外。因此可以认为值仍为 1 的位置上的文件描述符发生了变化。
#### 12.2.5 select 函数调用示例