Old stuff/ecole_etude_fac_de_pau/licence_3/systeme-d-exploitation/tp2/4.c
(Deskargatu)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
#include <sys/wait.h>
int main(int argc,char** argv)
{
int param;
if (argc > 1)
{
param= *argv[1]-48;
}
int i;
pid_t pid;
for(i=1;i<=param;i++)
{
printf("creation du %d eme fork\n",i);
switch(pid=fork())
{
case -1: perror("fork error"); exit(-1);
case 0:
printf("Le PID du %deme fils est %d et son PPID est %d\n",i,getpid(),getppid());
if(sleep(2*i)==-1)
{
perror("sleep du processus error");
exit(-1);
}
printf("fin du processus fils %d\n",i);
exit(i);
}
}
if (pid >0) { while(wait(0) != -1); }
}