相关函数:pipe(int pip[2])
其会创建一个匿名管道,其中pip是被out的,成功后,pip[0]会是读端的文件描述符,pip[1]是写端的文件描述符
当返回值是-1时,该函数错误,是0时,成功
该函数只能在有亲缘关系的进程之间通信
当使用fork创建子进程之后,读的那一端会被先挂起直到有数据从写端写入
quick start:(vi写的,有点难看)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <wait.h>
int main(){
char buf[80];
int pid, pp[2];
if(pipe(pp)==-1){
printf("Error\n");
}
pid = fork();
switch (pid){
case 0:
close(pp[0]);
write(pp[1], "hello i am child", 17);
close(pp[1]);
exit(1);
break;
case -1:
printf("Error");
default:
close(pp[1]);
read(pp[0],buf,80);
printf("i am parent i recive the message:%s\n", buf);
close(pp[0]);
break;
}
return 0;
}