进程间通信----无名管道

Posted 吾乃世间奇才

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程间通信----无名管道相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>

int main(int argc, char * argv[])
{
        int ret = 0;
        int pipefd[2] = {0};

        ret = pipe(pipefd);
        if(ret == -1)
                perror(argv[0]);

        ret = fork();
        if(ret > 0){
                printf("the son pid is %d\\n", ret);
                while(1){
                        printf("I am is father process\\n");
                        write(pipefd[1], "hello", 5);
                        sleep(1);
                }
        }else if( ret == 0){
                char arr[20];
                while(1){
                        memset(arr, 0, 20);
                        read(pipefd[0], arr, 5);
                        printf("I'am  is the son process, the pipe data is %s\\n", arr);
                }
                
        }else{
                printf("perror\\n");
        }
        return 0;
}

输出
在这里插入图片描述

以上是关于进程间通信----无名管道的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统编程进程间通信之无名管道

进程间通信(无名管道)

进程间通信—无名管道通信

linux进程间通信之一:无名管道

进程间通信----无名管道

多进程编程之进程间通信-管道和消息队列