- 1、创建1个子进程
- 2、程通过管道与子进程连接
- 子进程的标准输出连接到管道的写端
- 主进程的标准输入连接到管道的读端
- 3、进程中调用exec(“echo”, “echo”, “hello world”, NULL)
- 4、进程中调用read(0, buf, sizeof(buf)),从标准输入中获取子进程发送的字符串,并打印出来
code:
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/wait.h>
int main(){
pid_t pid;
int fd[2];
char buf[30];
int count;
int i=0;
pipe(fd);
pid=fork();
if(pid<0){
perror("fork():");
}
if(pid==0){
dup2(fd[1],1);
execlp("echo","echo","hello world",NULL);
}
else{
dup2(fd[0],0);
count=read(0,buf,30);
write(1,buf,count);
}
close(fd[0]);
close(fd[1]);
return 0;
}

本文介绍了一个简单的父进程与子进程间通过管道进行通信的例子。子进程使用exec调用echo命令来发送消息,父进程则通过管道读取并显示该消息。
2602

被折叠的 条评论
为什么被折叠?



