简介:管道是linux中进程间通信的一种方式,它把一个程序的输出直接链接另一个程序的输入。Linux下的管道主要分两种:无名管道(pipe)和有名管道(fifo).
1.无名管道:只能用于具有亲缘关系的进程之间的通信(也就是父子进程或兄弟进程之间),是以半双工的一个通信方式,速度较慢,容量有限。
测试无名管道能有多大容量:(代码实现)
#include<stdio.h>
#include<unistd.h>
//测试无名管道能写多大容量
int main()
{
//定义无名管道数组
int fd[2]={0};
//创建无名管道
int ret=pipe(fd);
if(ret<0)
{
perror("pipe error");
return -1;
}
int buf[1024]={0};
int count=0;
while(1)
{
write(fd[1],buf,1024);
count++;
//注意:打印count时不可放在while循环外,应为不知道到那结束,所以需要一个一个打印,看最多到哪里就写满