Process 子进程不终止?

Process 子进程不终止?,process,signals,Process,Signals,我有一个关于是否有任何进程不终止的考试问题。 我以为他们都会终止,那个么为什么有进程不终止呢 是因为父母没有收获孩子吗 若父端比子端快,那个么就并没有僵尸进程。 但是如果孩子结束的速度比父母快,那么他们就会变成僵尸,对吗?声明a是volatile可以解决它吗?即使孩子变成僵尸,当父母退出时也会收获,因为init过程会采用它,那个么你们的意思是所有的过程都会终止?除非它们进入无限循环。 int a = 1; void handler(int sig){ a = 0; } void empt

我有一个关于是否有任何进程不终止的考试问题。 我以为他们都会终止,那个么为什么有进程不终止呢

是因为父母没有收获孩子吗

若父端比子端快,那个么就并没有僵尸进程。
但是如果孩子结束的速度比父母快,那么他们就会变成僵尸,对吗?

声明
a
volatile
可以解决它吗?即使孩子变成僵尸,当父母退出时也会收获,因为
init
过程会采用它,那个么你们的意思是所有的过程都会终止?除非它们进入无限循环。
int a = 1;
void handler(int sig){
    a = 0;
}
void emptyhandler(int sig){
}

int main() {
    signal(SIGINT, handler);
    signal(SIGCONT, emptyhandler);
    int pid = fork();
    if(pid == 0){
        while(a == 1)
        pause();
        printf("a");
    }else{
        kill(pid, SIGCONT);
        printf("b");
        kill(pid, SIGINT);
        printf("c");
    }
}