我想计算使用 for 1,10 创建的进程数以及执行 fork() si 的位置。该程序在linux中执行。我真的不知道如何使用等待或 WEXITSTATUS,我在论坛上花了几个小时仍然不明白。有人能帮助我吗?
谢谢, 德拉戈斯
#include <sys/types.h>
#include <unistd.h>
#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
int nr = 1;
int main()
{
int pid;
int i;
int stare;
for(i = 1; i<=10 ; i++)
{
pid = fork();
if( pid !=0 )
{
//parent
wait(&stare);
nr = nr + stare;
}
else
{
//child
nr++;
stare = WEXITSTATUS(nr);
exit(nr);
}
}
printf("\nNr: %d\n", nr);
}