神仙难救丶啊 2021-08-15 10:33 采纳率: 0%
浏览 43
已结题

linux 父子进程无名管道通信 printf部分位置打印不出来

linux 简单的父子进程无名管道通信 父进程传字符串给子进程 子进程做变换传给父进程 显示
问题:运行结果 位置4和位置5 为什么打印不出来
如果去掉 位置3中的\n 则位置1-5都不打印 这是为什么呀?


#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>

int main()
{
    int pipe_fd[2], read_bytes, i = 0;
    pid_t pid;
    char string[100];
    char buf[100];

    printf("Please input string:");
    scanf("%s",string);

    if(pipe(pipe_fd) < 0)
    {
        printf("pipe create error!\n");
        exit(1);
    }

    if((pid = fork()) > 0)
    {
        printf("fffffffffffffffff");
        close(pipe_fd[1]);
        if((read_bytes = read(pipe_fd[0],buf,sizeof(string))) > 0)
        {
            printf("this is parent progress,after change string is %s\n",buf);
        }
        close(pipe_fd[0]);
        waitpid(pid,NULL,0);

    }
    else if(pid == 0)
    {
        printf("1111111111");/*位置1*/
        printf("2222222222");/*位置2*/
        sleep(2);
        printf("3333333333\n");/*位置3*/
        close(pipe_fd[0]);
        while(string[i] != '\0')
        {
            string[i] = string[i] - 32;
            i++;
        }
        printf("4444444444");/*位置4*/
        if(write(pipe_fd[1],string,sizeof(string)) < 0)
        {
            printf("write error");
            exit(1);
        }
        printf("5555555555");/*位置5*/
        close(pipe_fd[1]);
        _exit(0);
    }
    else
    {
        printf("fork error!\n");
        exit(1);
    }
}

img

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-08-16 17:38
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    ​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    评论

报告相同问题?

问题事件

  • 系统已结题 8月23日
  • 创建了问题 8月15日

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图