fork()
系统调用生成两个相同的地址空间副本,一个用于父级,另一个用于子级。
使用带if语句的fork时,在以下代码中创建子进程的次数是多少次?
fork();
pid=fork();
if(pid==0)
{
fork();
}
答案 0 :(得分:0)
添加一些额外的代码来获得类似的内容:
#include <stdio.h>
#include <unistd.h>
int main()
{
pid_t pid;
pid = fork();
if (pid != 0) printf("%d\n", pid);
pid = fork();
if (pid != 0) printf("%d\n", pid);
if(pid==0)
{
pid = fork();
if (pid != 0) printf("%d\n", pid);
}
return 0;
}
然后编译,执行并检查其输出: 5个子进程ID 。