无名管道是父子进程通信的手段,没有关系的进程是不能使用无名管道的
int fd[2];
if (pipe(fd) == -1) {
printf("打开无名管道出错,%s\n", strerror(errno));
return -1;
}
char buf[1024];
pid_t pid = fork();
if (pid == -1) {
printf("fork出错\n");
return -1;
}
if (pid > 0) { //父进程
memset(buf, 0, sizeof(buf));
read(fd[0], buf, sizeof(buf));
printf("%s\n", buf);
} else { //子进程
memset(buf,0,sizeof(buf));
strcpy(buf,"hello world");
write(fd[1],buf,strlen(buf));
}
return 0;