Chinaunix首页 | 论坛 | 博客
  • 博客访问: 258776
  • 博文数量: 107
  • 博客积分: 305
  • 博客等级: 二等列兵
  • 技术积分: 417
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 09:42
文章分类

全部博文(107)

文章存档

2014年(3)

2013年(41)

2012年(34)

2011年(28)

2008年(1)

分类: LINUX

2013-08-19 10:18:42

本篇文章将对Linux IPC通讯进行总结,也是自己对IPC认识的总结。本次主要介绍管道与有名管道。

管道(PIPE、FIFO):

1、使用场合:Linux IPC 通讯方式比较老的一种方式,比较适合数据量较小的通讯方式, 常用于控制命令。

ulimit -a 可以看到 pipe size            (512 bytes, -p) 8 4k

2、特点:半双工方式,如cmd process A->process B  ACK process B->process A

3、有名管道与无名管道的区别:

无名管道适用于具有亲缘关系的进程间通讯。

有名管道可以在任意进程间通讯,通过管道文件。

4、管道使用步骤

有名管道:

(1)mkfifo 创建管道文件

(2)open 打开管道文件,设置属性,一般写阻塞,读非阻塞

(3)read

(4)write

无名管道:

(1)pipe

(2)设置阻塞、非阻塞属性

(3)pipe[0] for read

     pipe[1] for write

5、注意事项:

(1)SIGPIPE

如果管道通讯一方已关闭fd,而本方要在写第一次报出此种信号,第二次段错误退出,要对此信号进行处理

(2)半双工方式

6、特殊用法:

线程间通讯:适合于传地址如大数据量的buf地址
阅读(1122) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~