C if(fork())fork()

C if(fork())fork(),c,fork,C,Fork,我正在学习一个操作系统测试,我不明白输出是什么 if(fork()) fork() 将产生。有人能解释一下吗 我不明白这句话: if(fork()) 编辑: 我所说的“输出”是指如果执行此代码,将有多少个进程 抱歉,我学习后有点头晕。也许你最好试试看,读一下fork,然后,如果仍然没有意义,问一个更具体的问题,关于你不理解的部分 首先尝试以下方法: #include <stdio.h> #include <unistd.h> int main(int argc

我正在学习一个操作系统测试,我不明白输出是什么

if(fork())
    fork()
将产生。有人能解释一下吗

我不明白这句话:

if(fork())
编辑:

我所说的“输出”是指如果执行此代码,将有多少个进程


抱歉,我学习后有点头晕。

也许你最好试试看,读一下fork,然后,如果仍然没有意义,问一个更具体的问题,关于你不理解的部分

首先尝试以下方法:

#include <stdio.h>
#include <unistd.h>
int main(int argc,char **argv){
    int x,y=0;
    x = fork();
    if (x) y = fork();
    printf("x: %d, y: %d\n",x,y);
    return 0;
}
#包括
#包括
int main(int argc,字符**argv){
int x,y=0;
x=fork();
如果(x)y=fork();
printf(“x:%d,y:%d\n”,x,y);
返回0;
}

这里有一个提示:
如果(fork())
只是一个简单的书写方法
如果(fork()!=0)
我和你有同样的问题

如果(fork())

如果(fork()!=0)
,您知道:

  • fork()
    :可以接受3个值

  • 子级的
    fork()=0

  • fork()<0
    错误

  • fork()>0
    parent

因此:

如果(0!=O)
==>false(在这种情况下,您不必执行2 fork()

if(-123!=0)
==>True(是的,您有)

如果(5!=0)
==>true(是的,您有)

像父母一样好

if (fork()) is 
评价为

if(pid_of_child) 
对于子流程,其评估为:

if(0)

就是这样:)

将输出……什么都没有。这个问题肯定包括一个printf或其他在fork之后输出的东西?我宁愿认为
if(x!=0)
是一个很长的写作方法
if(x)
:)这个小测验的问题是:如果(!fork())如果(!fork())如果(fork())fork()得了满分