进程间通信之匿名管道—创建兄弟进程
利用匿名管道实现兄弟进程间通信,要求
- 兄进程发送字符串“This is elder brother ,pid is (兄进程进程号)”给弟进程;
- 弟进程收到兄进程发送的数据后,给兄进程回复“This is younger brother , pid is(弟进程进程号)”; */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/wait.h>
#include <string.h>
int main()
{
int fd1[2],fd2[2];
char buf1[50],buf2[50],p1[50],p2[50];
pid_t pid1,pid2;
pipe (fd1); //创建管道一
pipe (fd2); //创建管道二
if ((pid1 = fork()) > 0) //创建子进程一(就是兄进程) 通过判断进入父进程
{
if ((pid2 = fork ()) == 0) 在父进程中再次创建子进程二(就是弟进程) 通过判断进入 弟进程
{
close (fd1[1]); //关闭管道一的 写入端
close (fd2[0]); //关闭管道二的 读入端
strcpy(buf2,"This is elder younger,pid is ");//
sprintf(p2,"%d",getpid());
strcat(buf2,p2);