|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Linux进程间通信(10)综合实验之有名管道通信实验, l: p7 b6 B+ Y9 c) j$ F% Q
2 O( L( {" ?6 a0 j实验目的
5 D: r8 R, U# c4 n! D/ L" n6 a0 h" g9 E7 S6 Q8 \
通过编写有名管道多路通信实验,进一步掌握管道的创建、读写等操作,同时复习使用select()函数实现管道的通信。+ E. f/ |) T. w: c# U% E3 h
- L' v7 V1 r4 c+ }" |6 s( {实验内容
: c- v! Y+ Q. `3 g9 {9 N" r9 L1 K& V* |1 B( ?! L
这里采用管道函数创建有名管道(不是在控制台下输入命令mknod),而且使用select()函数替代poll()函数实现多路复用。如果对管道通信的知识忘了的话,请看这篇:Linux进程间通信(3)这篇讲的是管道通信之有名管道和他的基础实验
6 F5 ~/ h! V s
5 o, i0 F; _ N* m# U% V5 o& q& V实验步骤8 w" S' M4 Q, ?/ [0 D7 w9 d
! D: M* L& w# p5 T1 @- w
实验流程图如下( |4 q, n6 z# h$ y- ~' q: J
. q$ N( p. n$ N# L" |
1 ~! L3 M2 l9 S7 `. d8 t# U* D' L; C* ~
本实验用到了一些函数,主要是FD_ISSET()函数是新的,其它的函数在开头的网址的链接博客中都可以找到。
3 v* Y8 C/ Y& _! S
, o9 e: J7 {/ v0 s源程序
+ h/ g' T0 t8 O# r' Q# D, d0 ]( y$ k- y. b- |% B" }
pipe_select.c文件如下:$ w+ v7 y8 v5 I; k4 ^1 m
7 @- z" }$ s0 t1 _( h- I: @) a
" M4 ? U+ C; H6 c8 C. e Y
3 T4 X- Y$ b* A4 `* c2 q
/ A4 c5 I5 u, d2 p% M& p" S& }% w% V
1 E- x; r0 g( K. O
# l- f( r7 w. g3 G |
|