|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Linux进程间通信(10)综合实验之有名管道通信实验
4 E* _( D q" y' c
- Q; m& t: H/ A/ V0 A, s0 j实验目的
& e- ^3 L* ]" G7 r3 ~" ~5 O' ~. D, G% a
通过编写有名管道多路通信实验,进一步掌握管道的创建、读写等操作,同时复习使用select()函数实现管道的通信。
9 b) ~" `& S3 w, f" X
* J9 n! Q. W% |7 _2 g实验内容, K6 v! u7 ~, N0 K
8 D# \/ G& ]8 l7 z# J) `- v
这里采用管道函数创建有名管道(不是在控制台下输入命令mknod),而且使用select()函数替代poll()函数实现多路复用。如果对管道通信的知识忘了的话,请看这篇:Linux进程间通信(3)这篇讲的是管道通信之有名管道和他的基础实验
F" ^* Q7 i% o" ?. |- W" X0 i) N; v+ W+ C; {1 [
实验步骤
7 @+ \( J4 O# L3 d, d; ~/ v. U# c# j% n3 e r
实验流程图如下! H& w& q8 N( P
5 a& r- f7 h- u" [8 O1 d1 Q7 }7 m; y6 ?
7 z# z4 D M. j, f
3 c. f+ o1 |4 {2 J7 L8 o% m' a本实验用到了一些函数,主要是FD_ISSET()函数是新的,其它的函数在开头的网址的链接博客中都可以找到。
" w. a3 h. G. C: T7 g0 p! R% E4 F0 Y& K. i3 Q ~# Y8 W. J
源程序
+ B. {( x* j2 O5 m! n E
& v2 u$ O) f" t' b% X pipe_select.c文件如下:
" b. ?! E" e% C. T5 t4 f5 o+ X
7 A7 z, ?! `6 s; X' _2 @
" W" F w1 i8 w6 v& k
" a3 a3 Q& M. }3 |- ~4 J& \3 e
1 y0 F0 d6 I6 l& x* X( l/ a& B' `4 j3 E6 j% `7 z
) ]: `: ?( o6 E" h# d$ s! h
|
|