linux pipe 管道简单例子

来源:互联网 发布:淘宝摇一摇 编辑:程序博客网 时间:2024/05/21 10:50

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;    }}
原创粉丝点击