这些 fork() 调用创建了多少个进程?
How many processes are created with these fork() calls?
如何查看已创建的进程数?我可以使用 getpid()
功能吗?
int main(int argc, char *argv[])
{
int pid1, pid2, pid3, pid4;
pid1 = fork();
if (pid1 != 0) {
pid2 = fork();
pid3 = fork();
}
else {
pid4 = fork();
}
return 0;
}
fork()
for pid1: 创建了一个子进程。
进程数 = 2
fork()
for pid2: 创建了一个子进程。
进程数 = 3
fork()
for pid3: 创建了两个子进程,一个由原始进程创建,一个由进程 pid2 创建。
进程数 = 5
fork()
for pid4: 创建了一个子进程。
进程数 = 6
如何查看已创建的进程数?我可以使用 getpid()
功能吗?
int main(int argc, char *argv[])
{
int pid1, pid2, pid3, pid4;
pid1 = fork();
if (pid1 != 0) {
pid2 = fork();
pid3 = fork();
}
else {
pid4 = fork();
}
return 0;
}
fork()
for pid1: 创建了一个子进程。
进程数 = 2
fork()
for pid2: 创建了一个子进程。
进程数 = 3
fork()
for pid3: 创建了两个子进程,一个由原始进程创建,一个由进程 pid2 创建。
进程数 = 5
fork()
for pid4: 创建了一个子进程。
进程数 = 6