int main( int nb_arg , char * tab_arg[] ) { char nomprog[128] ; char message[MESSAGES_TAILLE] ; struct timeval temps ; double temps_debut; double temps_fin; /*----------*/ if( nb_arg != 1 ) { fprintf( stderr , "Role : Test des fonctions de messages pour un Tube\n"); fprintf( stderr , "Usage : %s \n", tab_arg[0] ); exit(-1) ; } strcpy( nomprog , tab_arg[0] ); printf( "\n---------- Debut %s ----------\n" , nomprog ) ; gettimeofday(&temps, NULL); temps_debut = temps.tv_sec+(temps.tv_usec/1000000.0); printf("Remplissage du message avec des X\n"); pipe_remplir( message , 'X') ; printf( "Affichage du message\n"); pipe_afficher( message ); gettimeofday(&temps, NULL); temps_fin = temps.tv_sec+(temps.tv_usec/1000000.0); printf("\nTemps d'execution du programme %s = %.6lf secondes !!!\n", nomprog , temps_fin - temps_debut); printf( "\n----------- Fin %s -----------\n" , nomprog ) ; exit(0); }
int main( int nb_arg , char * tab_arg[]){ char nomprog[128] ; int fd_tube, i; char msg[MESSAGES_TAILLE]; struct timeval debut, fin, temps; float duree; /*----------*/ if( nb_arg != 1 ) { fprintf( stderr , "%s - Emetteur dans la communication par flot\n\n" , tab_arg[0] ); fprintf( stderr , "usage : %s \n" , tab_arg[0] ); exit(-1); } strcpy( nomprog , tab_arg[0] ); /*=============================*/ /* A FAIRE */ /*=============================*/ /*Ouverture du tube en ecriture*/ if( (fd_tube = open(NOM, O_WRONLY, 0)) == -1){ fprintf(stderr, "%s : erreur dans l ouverture du tube en ecriture\n\n", nomprog); exit(-1); }/*Fin du if*/ /*Remplissage du message a envoyer*/ pipe_remplir(msg, 'a'); printf("Debut de l emission\n"); /*Recuperation du temps avant la reception de messages*/ if( (gettimeofday(&debut, NULL)) == -1){ fprintf( stderr ,"%s : Erreur dans le recuperation du temps avant l emission des msgs\n\n", nomprog); exit(-1); }/*Fin du if*/ /*Ecriture dans le tube de MESSAGES_NB messages de taille MESSAGES_TAILLE*/ for(i = 0; i < MESSAGES_NB; i ++){ if( (write(fd_tube, msg, MESSAGES_TAILLE)) == -1){ fprintf(stderr, "%s : erreur dans l ecriture du tube\n", nomprog); exit(-1); }/*Fin du if*/ }/*Fin du for*/ /*Recuperation du temps apres l emission des messages*/ if( (gettimeofday(&fin, NULL)) == -1){ fprintf(stderr, "%s : Erreur lors de la recuperation du temps apres l emission des messages\n\n", nomprog); exit(-1); }/*Fin du if*/ /*Difference entre les temps de debut et temps de fin, et affichage du temps pour l emission*/ timersub(&fin, &debut, &temps); duree = temps.tv_sec + (temps.tv_usec * 1e-6); /*Envoi de la date de debut de transmission*/ if( (write(fd_tube, &debut, sizeof(debut))) == -1){ fprintf(stderr, "%s : erreur dans l ecriture du tube\n", nomprog); exit(-1); }/*Fin du if*/ printf("Temps pour l emission de %d messages de taille %d : %.3f secondes\n\n", MESSAGES_NB, MESSAGES_TAILLE, duree); printf("Fin de l emission\n\n"); exit(0); }