linux pipe 管道简单例子
//
// Created by liyihang on 17-9-25.
//
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
int main(int argc, char *argv[])
{
int pipe_fd[2];
pid_t child_pid;
char pipe_buf;
memset(pipe_fd, 0, sizeof(int)*2);
if (pipe(pipe_fd)==-1){
printf("open err\n");
return -1;
}
child_pid=fork();
if (child_pid==-1)
{
printf("thead err\n");
}
if (child_pid==0)
{
close(pipe_fd[1]);
printf("while start\n");
while (read(pipe_fd[0], &pipe_buf, 1)>0)
{
// write(STDOUT_FILENO, &pipe_buf, 1);
printf("read content outs:%s\n", &pipe_buf);
}
close(pipe_fd[0]);
printf("child thead ok\n");
return 0;
} else{
close(pipe_fd[0]);
write(pipe_fd[1], "h", 1);
close(pipe_fd[1]);
printf("father thaed ok\n");
// wait(NULL);
wait(&child_pid);
printf("wait thread \n");
return 0;
}
}