/* * Programme simulant la gestion d'une imprimante * Dans cette version, on a un processus client (imprime4c) qui envoie * ses requetes d'impression a un processus serveur (imprime4s) via un * tube nommé */ #include #include #include #include #include #include #include #include #include "imprime3.h" void attenteImpression(){ char nomFic[TAILLEMAX]; int fdW; int nbWrite; /* Ouverture du tube vers le serveur */ fdW = open(TUBENOMME, O_WRONLY); if (fdW == -1) { perror("open(TUBENOMME)"); exit(-1); } /* C'est parti pour les impressions */ do { printf("Nom du fichier a imprimer (taper '0' pour terminer) ? "); scanf("%s", nomFic); if (strcmp(nomFic,"0") == 0){ break; } nbWrite = write(fdW, nomFic, sizeof(nomFic)); if (nbWrite < sizeof(nomFic)) { perror("pb ecriture sur pipe nomme"); } }while (1); /* On n'aura pas d'autres messages à envoyer au serveur. On peut donc */ /* fermer le tube */ close(fdW); printf("Au revoir\n"); } int main(){ attenteImpression(); return EXIT_SUCCESS; }