Beispiel #1
0
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);
}