Qxxx11 2022-10-14 21:11 采纳率: 25%
浏览 6
已结题

匿名管道接收不到子进程写入的数据

为什么我接收不到子进程传入匿名管道的数据捏?
效果是这样的:

img


我的代码是这样的

int main()
{  
    int pipefd[2];
    int ret1=pipe(pipefd);
    if(ret1==-1)
    {
        perror("pipe");
        exit(0);
    }
    pid_t pid=fork();
    if(pid>0)
    {
        sleep(1);
        cout<<"父进程读取到的数据为:";
        string n;
        int len=read(pipefd[0],&n,sizeof(n));
        if(len==-1)
        {
            perror("read");
            exit(0);
        }
        cout<<n<<endl;;    }
    else if(pid==0)
    {
        cout<<"I am child,pid is :"<<getpid()<<endl;
        string m="abcdefg";
        write(pipefd[1],&m,m.size()); 
    }
    return 0;
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 10月22日
    • 创建了问题 10月14日