--- rpl/src/profilage.c 2012/05/21 17:25:46 1.34 +++ rpl/src/profilage.c 2023/08/07 17:42:59 1.69 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.9 - Copyright (C) 1989-2012 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.35 + Copyright (C) 1989-2023 Dr. BERTRAND Joël This file is part of RPL/2. @@ -300,7 +300,7 @@ ecriture_profil(struct_processus *s_etat l_element_courant = (*l_element_courant).suivant; } - total = cumul.tv_sec + (((double) cumul.tv_usec) / 1000000); + total = ((double) cumul.tv_sec) + (((double) cumul.tv_usec) / 1000000); // Création du fichier @@ -312,8 +312,8 @@ ecriture_profil(struct_processus *s_etat } snprintf(nom, strlen(ds_rplprofile) + 64 + 1, - "%s-%lu-%lu", ds_rplprofile, (unsigned long) getpid(), - (unsigned long) pthread_self()); + "%s-%llu-%llu", ds_rplprofile, (unsigned long long) getpid(), + (unsigned long long) pthread_self()); if ((fichier = fopen(nom, "w+")) == NULL) { @@ -333,14 +333,14 @@ ecriture_profil(struct_processus *s_etat return; } - if (fprintf(fichier, "Process : %lu\n", (unsigned long) + if (fprintf(fichier, "Process : %llu\n", (unsigned long long) getpid()) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; return; } - if (fprintf(fichier, "Thread : %lu\n", (unsigned long) + if (fprintf(fichier, "Thread : %llu\n", (unsigned long long) pthread_self()) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier; @@ -364,13 +364,13 @@ ecriture_profil(struct_processus *s_etat while(l_element_courant != NULL) { - temps = (*l_element_courant).cumul.tv_sec + + temps = ((double) (*l_element_courant).cumul.tv_sec) + (((double) (*l_element_courant).cumul.tv_usec) / 1000000); fraction = 100 * (temps / total); if (fprintf(fichier, "<%012lld> %15.2fs (%6.2f%%/%6.2f%%) : %s\n", - (*l_element_courant).nombre_appels, - temps, fraction, fraction / (*l_element_courant).nombre_appels, + (*l_element_courant).nombre_appels, temps, fraction, + fraction / ((double) (*l_element_courant).nombre_appels), (*l_element_courant).fonction) < 0) { (*s_etat_processus).erreur_systeme = d_es_erreur_fichier;