|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Linux Select+ X/ ?2 a: @9 v
6 ]0 }- n. }2 s" R+ `) ^4 w. s$ }0 f+ A/ Z; [$ p8 Y, u$ \" w
在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核:$ e1 V& w; S! {) G1 h1 m
5 ^/ A& ^/ J: F3 [) w- R
4 T1 j# H8 I( A4 p) ? •我们所关心的文件描述符
/ c/ Q$ a6 J# {6 s, c' r •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常)
' M: N' b+ S/ n0 d+ N •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或者根本就不等待)+ D+ R: R: P E
从 select函数返回后,内核告诉我们一下信息:, J- x4 U$ M5 L, h* q
•对我们的要求已经做好准备的描述符的个数
( D+ o! i& h" I •对于三种条件哪些描述符已经做好准备.(读,写,异常)! [8 c5 V1 @8 r% I
- ~* o. b) ^; Y7 W8 e
1 F2 T+ q! U P, p- y; u! U
select
3 N: E" _; P: p8 E
/ ~$ ]/ r C: n7 r4 r, G: |2 r- o# v" g: }' \" m
# i: \# [5 u& b H% ~
; F4 w) G. O, c- p' l Q* k" t) N2 L( t6 I* [, K
0 q: Z- W: Q, e( n
2 {) I% l# ^6 H) B' G0 e9 w+ Z) `, l
; ]( P/ j; z3 q9 x. @: ~! A% E
1 M8 [/ B% h5 W6 o
0 B4 s+ {' J; L7 S1 B9 z
7 I% v/ F- ?! R& [5 B- M3 d
6 g4 J) h1 v/ [ m
& G( G% o8 V' f5 P, h |
|