/* librairie standard ... */ #include /* pour getopt */ #include /* déclaration des types de base */ #include /* constantes relatives aux domaines, types et protocoles */ #include /* constantes et structures propres au domaine UNIX */ #include /* constantes et structures propres au domaine INTERNET */ #include /* structures retournées par les fonctions de gestion de la base de données du réseau */ #include /* pour les entrées/sorties */ #include /* pour la gestion des erreurs */ #include int main (int argc, char **argv) { int c; extern char *optarg; extern int optind; int nb_message = -1; /* Nb de messages à envoyer ou à recevoir, par défaut : 10 en émission, infini en réception */ int source = -1 ; /* 0=puits, 1=source */ while ((c = getopt(argc, argv, "pn:s")) != -1) { switch (c) { case 'p': if (source == 1) { printf("usage: cmd [-p|-s][-n ##]\n"); exit(1); } source = 0; break; case 's': if (source == 0) { printf("usage: cmd [-p|-s][-n ##]\n"); exit(1) ; } source = 1; break; case 'n': nb_message = atoi(optarg); break; default: printf("usage: cmd [-p|-s][-n ##]\n"); break; } } if (source == -1) { printf("usage: cmd [-p|-s][-n ##]\n"); exit(1) ; } if (source == 1) printf("on est dans le source\n"); else printf("on est dans le puits\n"); if (nb_message != -1) { if (source == 1) printf("nb de tampons à envoyer : %d\n", nb_message); else printf("nb de tampons à recevoir : %d\n", nb_message); } else { if (source == 1) { nb_message = 10 ; printf("nb de tampons à envoyer = 10 par défaut\n"); } else printf("nb de tampons à envoyer = infini\n"); } }