成总不秃头 2021-10-27 17:48 采纳率: 0%
浏览 23

软中断通信问题,改判断不输出

求个大佬,请问一下为什么改个判断为什么parent那一句就不输出了

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

int wait_flag;
void stop();

int main() 
{
    int pid1,pid2;
    wait_flag = 1;
    signal(2,stop);
    while(wait_flag == 1);
    while((pid1 = fork()) == -1);
    if(pid1>0) //为什么改成==0 parent那一句就不输出了
    {
        while((pid2 = fork()) == -1);
        if(pid2  >  0) 
        {
            wait_flag = 1;
            sleep(5);
            kill(pid1,16);
            kill(pid2,17);
            wait(0);
            wait(0);
            printf("Parent process is killed !!\n");
            exit(0);
        }
        else 
        {
            wait_flag = 1;
            signal(17,stop);
            while(wait_flag == 1);
            printf("Child process 2 is killed by parent !!\n");
            exit(0);
        }
    }
    else 
    {
        wait_flag = 1;
        signal(16,stop);
        while(wait_flag == 1);
        printf("Child process 1 is killed by parent !!\n");
        exit(0);
    }
}

void stop() 
{
    wait_flag = 0;
}


  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-10-27 17:58
    关注

    不满足if判断就不输出了。pid1有等于0的情况吗

    评论

报告相同问题?

问题事件

  • 修改了问题 10月27日
  • 创建了问题 10月27日

悬赏问题

  • ¥20 公众号如何实现点击超链接后自动发送文字
  • ¥15 用php隐藏类名和增加类名
  • ¥15 算法设计与分析课程的提问
  • ¥15 用MATLAB汇总拟合图
  • ¥15 智能除草机器人方案设计
  • ¥15 对接wps协作接口实现消息发送
  • ¥15 SQLite 出现“Database is locked” 如何解决?
  • ¥15 已经加了学校的隶属邮箱了,为什么还是进不去github education?😭
  • ¥15 求会做聚类,TCN的朋友有偿线上指导。以下是目前遇到的问题
  • ¥100 无网格伽辽金方法研究裂纹扩展的程序