#include #include #include #include #include /*pour les stats nous voulions utiliser des variables qui puissent communiquer entre les programmes au debut nous vouliosn utiliser les variables d environement mais on a pas reussi a les modifier au sein d un programme , nous avons donc decider de stocker ces variables dans des .txt pour les reutiliser aprés cependnat cela ne fonctionne pas lors de lexecution du launcher*/ int Random (int _imin, int _imax) {return (_imin + (rand () % (_imax-_imin+1)));} int main(int argv, char *argc){ int pid; /*permet de stocker le nombre d utilisation dans un fichier txt*/ int car; FILE* nbr_utilisation = NULL; FILE* nbr_utilisation2 = NULL; FILE* nbr_1 = NULL;//permet de stocker dans des txt le nombre de lancement des differenst fond ecrans cf point sur les stats au debut du programme FILE* nbr_12 = NULL; FILE* nbr_2 = NULL; FILE* nbr_22 = NULL; FILE* nbr_3 = NULL; FILE* nbr_32 = NULL; FILE* alea = NULL; system("touch nbr_utilisation2"); nbr_utilisation=fopen("nbr_utilisation","r"); nbr_utilisation2=fopen("nbr_utilisation2","w"); car=fgetc(nbr_utilisation); car=car+1; fprintf(nbr_utilisation2,"%c",car); fclose(nbr_utilisation2); fclose(nbr_utilisation); system("mv nbr_utilisation2 nbr_utilisation"); int nbrAlea;//nombre aleatoire int nbrAlea2;//nombre aleatoire pid=fork(); srand (time (NULL));//créer nbr alea entre 1 et 3 nbrAlea = Random (1,2);//creation d un nbr alea entre 1 et 2 car tout les autres types ne sont pas fais nbrAlea2= Random (1,5); switch(pid) {case -1: printf("error"); break; case 0: switch(nbrAlea) { case 1: /*permet de stocker le nombre d utilisation dans un fichier txt, il exprime le nombre d utilisation de la fonction statique*/ system("touch nbr_12"); nbr_1=fopen("nbr_1","r"); nbr_12=fopen("nbr_12","w"); system("rm alea"); alea=fopen("alea","w"); car=fgetc(nbr_1); car=car+1; fprintf(nbr_12,"%c",car); fprintf(alea,"%d",nbrAlea2); fclose(nbr_12); fclose(nbr_1); fclose(alea); system("mv nbr_12 nbr_1"); execl("/home/pierre/Documents/doc/statique/lecture2", "lecture2", NULL); break; case 2: /*permet de stocker le nombre d utilisation dans un fichier txt, il exprime le nombre d utilisation de la fonction dynamique*/ system("touch nbr_22"); nbr_2=fopen("nbr_2","r"); nbr_22=fopen("nbr_22","w"); car=fgetc(nbr_2); car=car+1; fprintf(nbr_22,"%c",car); fclose(nbr_22); fclose(nbr_2); system("mv nbr_22 nbr_2"); execl("/home/pierre/Documents/doc/dynamique/dynamique", "dynamique", NULL); break; case 3: /*permet de stocker le nombre d utilisation dans un fichier txt, il exprime le nombre d utilisation de la fonction interactif*/ system("touch nbr_23"); nbr_3=fopen("nbr_3","r"); nbr_32=fopen("nbr_32","w"); car=fgetc(nbr_3); car=car+1; fprintf(nbr_32,"%c",car); fclose(nbr_32); fclose(nbr_3); system("mv nbr_32 nbr_3"); execl("/home/pierre/Documents/doc/interactif/lecture2", "lecture2", NULL); break; } break; default: wait(NULL); break; } return 0; }