PIPO管道通信範列(linux)

pipo管道通信適合在父子進程,兄弟進程間通信。

#include<cstring>
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<fcntl.h>
#include<sys/stat.h>
#include<sys/types.h>
void sys_err(const char * str)
{
    perror(str);
    exit(-1);
}
int main()
{
    int fd[2];
    pid_t pid;
    char buf[2048];
    if (pipe(fd) < 0)
    {
        sys_err("pipe");
    }
    if((pid = fork()) < 0)
    {
        sys_err("fork");
    }
    else if(pid == 0)
    {
        
        int len;
        close(fd[1]);
        while(1)
        {
            len = read(fd[0],buf,sizeof(buf));    
            std::cout<<buf<<std::endl;
        }
        close(fd[0]);
    }
    else
    {
        int i;
        close(fd[0]);
        while(1)
        {
            sprintf(buf,"write : %d\n",i++);
            write(fd[1],buf,sizeof(buf));
            sleep(1);
        }
        close(fd[1]);
    }
    return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章