【C++服务器入门基础------4.IPC进程间通信--管道】

大学生寒假在家过于无聊,整理一下以前学过的知识,顺便复习一下,水平较低,专业性差,仅供参考,不喜勿喷(反正也没人看)。连续一周多出去泡妞了,现在开学了,真的有在好好整理啦。

一、什么是管道

管道是Unix中最古老的进程间通信的形式。

我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”

把一个进程的输出连接或“管接”(经过管道来连接)到另一个进程的输入。

二、在shell中使用管道

链接shell命令:把一个进程的输出直接馈入另一个的输入,命令格式如下

命令1 |命令2|命令3|....

如:cat /etc/passwd|sort

三、管道特点

·管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道。

·只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程)进行通信;通常,一个管道由一个进程创建,然后该进程调用fork,此后父、子进程之间就可应用该管道。

·管道不是普通的文件,不属于某个文件系统,其只存在于内存中。

·管道的缓冲区大小是有限的,在linux中,该缓冲区的大小固定为4k

四、匿名管道

管道分为匿名管道和有名管道,先介绍匿名管道。

你可能感兴趣的:(C++服务器入门系列,c++,linux,ipc)