开发者社区> 问答> 正文

linux,用子进程读取文件发送为何阻塞了?

if((pid=fork())==0){
    fd=open(c->argv1,O_RDONLY,S_IRUSR);
    while((len=read(fd,filebuf,MAXLINE))>0){
        write(client->fd,filebuf,len);
        printf("%s\n",filebuf);
        bzero(filebuf,sizeof(filebuf));
    }
    close(fd);
    for(i=0;i<10;i++){
        printf("child:%d",getpid());
        sleep(100);
    }
    exit(0);
}

这段程序用子进程执行,读取文件然后发送,为何下面的循环没有输出?

展开
收起
a123456678 2016-06-12 16:51:07 1834 0
1 条回答
写回答
取消 提交回答
  • SIGCHLD 信号中断了 select() , 造成select()调用失败退出, 在 select() 调用失败退出时, 可以查看 errno 是否等于 EINTR, 如果等于 EINTR, 重新调用 select()

    2019-07-17 19:34:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载