|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Linux Select4 l% V/ v @. s7 L- n
% U2 O6 A8 S' J. b$ B% j
! g# @* {5 d( M: x9 Y4 z在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核:0 S$ L7 s( z N* V |
" I# ^, Q0 D2 H/ o8 X7 k
- v* T Z0 h2 Z' U( `# e) {* y •我们所关心的文件描述符
! }0 H+ o+ x. V! T# z$ {8 v •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常)
& k- h& U3 n% F( y. w- H •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)
9 W" ?6 z& @/ l 从 select函数返回后,内核告诉我们一下信息:
& P3 Y1 V k: p8 \% B •对我们的要求已经做好准备的描述符的个数9 D4 w% i( `) K/ ?
•对于三种条件哪些描述符已经做好准备.(读,写,异常)- M! s& g8 b. }* D
* ]) Y7 @/ v4 G
- H+ g& u& K, Q3 \2 _select
. E$ {( c9 J6 O) ^; I( }& O' s
& U* W& n! r" s0 B& n
- R* l: I) @& Q
% b, m3 `, v6 q, ?$ K/ w9 c8 W- ~2 P$ D; |" V2 o
6 [& a Q6 `7 S 6 k$ w, v# r# H1 |7 W6 w
8 \' C; Y9 E* j- p
/ @# I m; c2 u; R " C1 O3 v5 z& Q! ?; T2 g8 u( S
U& _0 s' A6 E, w/ A; Y- z
: F7 u- G: }" @* f
/ ~3 F/ n+ |6 J% l2 k# O
0 `% D+ w( @! W7 s0 d |
|