#include #include #include #include int main(int argc, char * argv[]){ if(argc != 3){ return 1; } int fork1, fork2; if((fork1=fork())<0){ perror("erreur exec du fork"); exit(1); } if(fork1 == 0){ if(execlp("./somme","somme",argv[1],argv[2],NULL)==-1){ perror("echec execlp"); exit(1); } } else { if((fork2=fork())<0){ perror("erreur exec du fork"); exit(1); } if(fork2 == 0){ sleep(2); if(execlp("./produit","produit",argv[1],argv[2],NULL)==-1){ perror("echec execlp"); exit(1); } } else{ int r, pid; if((pid= wait(&r)) <0){ perror("erreur exec du wait"); exit(1); }else if(pid==fork1){ printf("Somme effectuée\n"); }else if(pid==fork2){ printf("Produit effectuée\n"); } if((pid= wait(&r)) <0){ perror("erreur exec du wait"); exit(1); }else if(pid==fork1){ printf("Somme effectuée\n"); }else if(pid==fork2){ printf("Produit effectuée\n"); } } } return 0; }