您的位置:首页 > 运维架构 > Linux

linux编程---进程通信中,利用socketpair实现子进程间通信

2017-08-07 10:47 661 查看
#include <sys/types.h>  

#include <sys/socket.h> 

#include <stdlib.h>  

#include <stdio.h>  

 

int main ()  

{  

    int fd1[2];   

    int r = socketpair( AF_UNIX, SOCK_STREAM, 0, fd1 );  

    if ( r < 0 ) {  

        perror( "socketpair()" );  

        exit( 1 );  

    }

        

    int val = 0;

    pid_t pid1 = fork();

    if(pid1 == 0)

    {

        close(fd1[1]);

        while(1){

            sleep(1);

            write( fd1[0], &val, sizeof(val) );  

            read( fd1[0], &val, sizeof(val) );  

            printf("child1 read [%d]\n",val);

            val++;        

        }

    }  

        

    pid_t pid2 = fork();

    if(pid2 == 0)

    {

        close(fd1[0]);

        while(1){

        read( fd1[1], &val, sizeof(val) );  

        printf("child2 read [%d]\n",val);

        val++;

        write( fd1[1], &val, sizeof(val) );  

        }

    }

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: