1管道是什么:
水管子大家知道,有两端,在此一端用来读一端用来写,其中一端的输出作为另外一端的输入。
2 函数原型
int pipe(int pipefd[2]);//参数中分别代表的两端
3 例子:管道一端作为写 另外一端作为读 父子进程实现
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h> int main()
{
pid_t pid;
int temp;
int pipedes[];
char s[]="letgo";
char d[];
if((pipe(pipedes))==-)
{
perror("pipe");
exit(EXIT_FAILURE);
} if((pid=fork())==-)
{
perror("fork error");
exit(EXIT_FAILURE);
}else if(pid==)
{
//printf(“子进程写数据到管道读端”);
printf("子进程写数据到管道读端\n");
if((write(pipedes[],s,))==-)
{
perror("write");
exit(EXIT_FAILURE);
}else
{
printf("所写入得数据是%s\n",s);
exit(EXIT_SUCCESS);
}
}else if(pid>)
{
sleep();//等待子进程结束
printf("父进程从管道读数据\n");
if((read(pipedes[],d,))==-)
{
perror("read");
exit(EXIT_FAILURE);
}
printf("从管道读端读出得数据是%s\n",d);
} return ;
}
运行结果: