Tfe

Ongi etorri tfe-ren webgunera...

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); }
}