大家好,我有这个示例代码,但我无法理解它的输出是什么,你们中的任何人都可以为我解释这个。
提前预订
int main(){
int i, j;
i = j = 0;
fork();
j++;
printf("i = %d, j = %d \n", i, j);
if(fork())
{
i += 5;
fork();
j *= 3;
printf("i = %d, j = %d \n", i, j);
}
else
{
i = j;
printf("i = %d, j = %d \n", i, j);
i--;
if(fork() == 0)
printf("i = %d, j = %d \n", i, j);
}}
答案 0 :(得分:0)
每次代码调用fork()函数时,它都会创建一个与自身重复的进程。
fork()将子进程的进程ID返回给父进程,将0返回给子进程。
if (fork ())
{
// Code executes in the parent process but not the child process.
}
else
{
// Code executes in the child process but not in the parent process.
}
if (fork () == 0)
// Code executes in the child process
然后,您可以绘制一个小树,显示新流程的创建以及输出的内容。