dengfangwen 2015-09-15 02:30 采纳率: 0%
浏览 1517

linux 管道 父进程写入管道的数据,其他进程没有处理怎么办?

#include
#include

int
main(void)
{
int n;
char line[MAXLINE];
int fd[2];
pid_t pid;

//create the pipe
if(pipe(fd)<0)   
    err_sys("pipe error!");

if((pid = fork()) < 0 ){
    err_sys("fork error");
} else if (pid >0 ){         //parent
    close(fd[0]);            //close fd[0] read 
    sleep(5);
    write(fd[1],"hello world\n",12);    //write data into pipe
    sleep(5);
    write(fd[1],"dengfangwen\n\0",strlen("dengfangwen\n\0"));

} else {                //child 
    close(fd[1]);//close fd[1]  write 
    n = read(fd[0],line ,MAXLINE);     //get data from pipe
    write(STDOUT_FILENO, line ,n);
    printf("child  thread exec one times\n");
}
exit(0);

}

程序运行如下:
hello world;
child thread exec one times
dengfangwen
请问第三条的dengfangwen是怎么打印出来的?
sleep(5);
write(fd[1],"dengfangwen\n\0",strlen("dengfangwen\n\0"));
向管道写dengfangwen的时候,子进程应该已经退出了;

  • 写回答

1条回答 默认 最新

  • darkerJ 2015-09-15 04:18
    关注

    待着,不会消失,只有取出来后才会消失

    评论

报告相同问题?

悬赏问题

  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度