【发布时间】:2017-05-10 04:27:41
【问题描述】:
我有以下代码,我正在尝试计算所有过程。我不明白如何计算最大进程数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int pid, pidmax = 0;
while(1)
{
pid = fork();
pidmax = getpid();
if(pid == 0){
if(pidmax < getpid())
pidmax = getpid();
printf("pid: %d, max: %d\n", getpid(), pidmax);
return 0;
}
if(pid == -1) {
printf("Maximum process: %d\n", pidmax);
exit(-1);
}
}
return 0;
}
【问题讨论】:
-
你可以通过使用计数器来实现,在有叉子的时候增加计数器。
-
它有效,但需要仅通过比较它们的 id 来找到最大数量。
标签: c fork child-process