嵌入式Linux系统:应用开发基础_无名管道通信及经典例程

      进程间通信在实际项目中多多少少都会使用到,最常用的有无名管道,有名管道,消息队列,信号,信号量,共享内存等进程间的通信方式。网络通信套字节 socket的方式也可以归为进程通行。

无名管道 pipe

      从 UNIX 系统开始,无名管道的通信方式就存在,有点类似硬件中的串口,从最初的设计者定型之后,这种模型就一直延续到今天,说明无名管道当初设计的就极具科学性。不过无名管道有一定的局限性。
第一:它是属于半双工的通信方式;
第二:只有具有“亲缘关系”的的进程才能使用这种通信方式,也就是父进程和子进程之间。

 

      无名管道通信首先需要使用 pipe 函数创建管道之后,两个进程之间才能通信。

 

接着介绍一下 pipe 函数。
int pipe(int pipefd[2])
参数 pipefd[0]:用于读管道。
参数 pipefd[1]:用于写管道。
返回值:执行成功返回 0,失败返回-1。
 

经典例程:

使用命令man 2 pipe,里面的example

通过main函数参数输入,父进程写入pipe,子进程从pipe中读,并输出到终端。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值