Accueil     Soft. MacOSX     Soft. MacOS/PC     PHP     Python     ROMS GBA     TP d'info     DBZ-GT     Martingales     Galeries     Liens     @  

TD5 Systeme, EX1

/*
Optimisation TD5 Systeme, EX1
©2003 http://www.Software-DS.com

ex1 -p ou ex1 -l*/

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char ** argv){
/* argc : nb de mots argv : tableau de mots */
int i=0;
char choix;
pid_t pid,pid2;

choix=argv[1][1];

if (argc>=2) {

switch(choix) {
case 'p': /* PROFONDEUR */
printf("PROFONDEUR\n\n");
sleep(1);
pid=fork();

switch(pid) {

case 0: puts(" je suis le fils");
printf(" processus %d fils de %d\n\n",getpid(),getpid());
i++;
printf(" valeur : %d adresse : %d\n",i,&i);
pid=fork();

switch(pid) {

case 0: puts(" je suis le fils");
printf(" processus %d fils de %d\n\n",getpid(),getpid());
printf(" valeur : %d\n",i);
sleep(3);
exit(0);

case -1: perror(" demofork\n");
return(1);
default: puts(" je suis le pere");
printf(" le pere %d a cree le fils: %d\n\n",getpid(),pid);
printf(" valeur : %d\n",i);
sleep(3);
}

sleep(3);
exit(0);
break;

case -1: perror(" demofork\n");
return(1);

default: puts(" je suis le pere");
i--;
printf(" le pere %d a cree le fils: %d\n\n",getpid(),pid);
printf(" valeur : %d adresse: %d\n",i,&i);
sleep(3);
}

printf(" VARIABLE i: %d\n",i);
break;

case 'l': /* LARGEUR */
sleep(1);
pid=fork();

switch(pid) {

case 0: puts("je suis le fils 1");
printf("processus %d fils de %d\n\n",getpid(),getpid());
i++;
printf("valeur : %d adresse : %d\n",i,&i);
pid=fork();
break;

case -1:perror("demofork\n");
return(1);
default: puts("je suis le pere");
i--;
printf("le pere %d a cree le fils: %d\n\n",getpid(),pid);
printf("valeur : %d adresse: %d\n",i,&i);
sleep(1);
pid2=fork();

switch(pid2) {

case 0: puts("je suis le fils 2");
printf("processus %d fils de %d\n\n",getpid(),getpid());
i++;
printf("valeur : %d adresse : %d\n",i,&i);
pid=fork();
break;

case -1: perror("demofork\n");
return(1);
default: puts("je suis le pere");
i--;
printf("le pere %d a cree le fils: %d\n\n",getpid(),pid);
printf("valeur : %d adresse: %d\n",i,&i);
sleep(3);
}
break;

}
break;


default : printf("ERROR: %s",argv[0]);
}

sleep(6);
printf("FIN\n");
}

return(0);
}

/* ©2003 All Rights Reserved to www.Software-DS.com */





Haut de la page - Page précédente - Page générée en 0.03077 sec.
Recherche personnalisée
 

1843923 visiteurs.   ©2001-2023 All Rights Reserved to Software-DS.com
Made with a mac  
Confidentialité