Process 向子进程发送SIGSTOP

Process 向子进程发送SIGSTOP,process,operating-system,signals,fork,kill,Process,Operating System,Signals,Fork,Kill,我正在学习发送信号。我遇到SIGSTOP和SIGCONT暂停,然后分别继续运行进程 据我所知,当我们执行fork()时,我们不知道是父还是子将首先执行。它取决于进程调度器的体系结构。这就是为什么如果在fork之后,我们在父级和子级中分别打印某些内容,那么执行顺序就无法确定。(除非我们在父进程中使用wait()来同步这两个进程)。 现在,我从父级向子级发送SIGSTOP信号,然后在父级完成一些计算后,向子级发送SIGCONT信号以恢复操作。到目前为止,每次我运行代码时,都不会执行子进程下的任何代码

我正在学习发送信号。我遇到SIGSTOP和SIGCONT暂停,然后分别继续运行进程
据我所知,当我们执行fork()时,我们不知道是父还是子将首先执行。它取决于进程调度器的体系结构。这就是为什么如果在fork之后,我们在父级和子级中分别打印某些内容,那么执行顺序就无法确定。(除非我们在父进程中使用wait()来同步这两个进程)。
现在,我从父级向子级发送SIGSTOP信号,然后在父级完成一些计算后,向子级发送SIGCONT信号以恢复操作。到目前为止,每次我运行代码时,都不会执行子进程下的任何代码。但我想知道是否永远都是这样?是否会出现子进程中的指令在从其父进程接收SIGSTOP之前执行的情况?以下是一些示例代码:

pid_t pid_c = fork();
if (pid_c == 0){
   printf("Hello I am the child process!\n");
}
else {
   kill(pid_c, SIGSTOP);
   printf("Hello I am the parent process!\n");
   // do some computation
   kill(pid_c, SIGCONT);
   wait(&NULL)
}
当我尝试执行上述代码时,父进程总是从打印语句开始,这样SIGSTOP就能够在执行任何操作之前暂停子进程的执行。SIGSTOP总是会发生这种情况,还是这仅仅取决于架构?我的意思是,是否会有这样一种情况,孩子在暂停之前打印“你好,我是孩子进程!”呢?
任何建议都将不胜感激!谢谢大家!