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

求个大佬,请问一下为什么改个判断为什么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;
}


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