|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
Linux进程间通信(10)综合实验之有名管道通信实验* A$ I$ \ W( r7 r7 G r
1 c* K0 a2 q( u& C% W实验目的
; s; }2 o6 p6 y4 J& E5 v9 e7 k+ E) N _2 w6 G8 ~9 R
通过编写有名管道多路通信实验,进一步掌握管道的创建、读写等操作,同时复习使用select()函数实现管道的通信。7 ?8 h* A- X5 j3 F
: k! E/ G; x) e! R0 q实验内容
% l. W% @5 C) v+ ~ d6 ^
3 {) V9 I- F4 O1 M. M& b+ ?; s 这里采用管道函数创建有名管道(不是在控制台下输入命令mknod),而且使用select()函数替代poll()函数实现多路复用。如果对管道通信的知识忘了的话,请看这篇:Linux进程间通信(3)这篇讲的是管道通信之有名管道和他的基础实验, H( Q- q/ d( R' H% O( J3 X
+ x! E4 Z& H& F0 T1 r+ u
实验步骤
, l: h7 r, x& @/ g" w' N
+ q8 W2 t; S* I- w% ]$ F 实验流程图如下
2 M. F% T3 e) S2 m0 C; x3 R) E2 c6 q+ t! T9 {. X( [* k- K
! ^# W) ?7 f8 j. {# G' W
- v8 C0 n0 C2 p$ v9 M' f; |: U本实验用到了一些函数,主要是FD_ISSET()函数是新的,其它的函数在开头的网址的链接博客中都可以找到。4 b+ e$ M! r! m* t
( A2 M. ~ q# P( Q/ C& ~源程序
% r/ D M& ~4 H' B7 l o1 f4 {* ^7 ?
pipe_select.c文件如下:' f, [4 [, v; n3 s, @0 n
& N2 \; L( p" n* h- h2 i- S4 H$ N! G" a: l# {6 O4 ]) l
4 K' j1 x& i; T( u& a
) x* z' V5 j5 Z0 Z$ p* g
: s0 J( n8 b- K! O+ I+ Y2 M/ L% _& m5 ]( v: v
|
|