Bonjour à tous,
me revoilà, toujours dans le même contexte.
Cette fois mon problème se pose sur l'utilisation de la fonction clock().
J'utilise la fonction clock dans un programme qui calcul le temps écoulé depuis son lancement pour une application en jeux de rôle.
Mon problème, lors d'un arrêt du programme sur getchar, clock s'arrête. Après vérification, clock calcul le temps processeur et donc il est évident qu'il s'arrête sur le getchar.
Or, sur windows clock calcul le temps depuis le lancement du programme.
Pour simplifier la compréhension du code, j'ai fait une simplification permettant de tester le fonctionnement de clock dans des conditions similaires au programme réel.
Je cherche donc une alternative à clock sur linux qui ne s'arrête pas lors du getchar.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 #include <stdio.h> #include <time.h> int main () { int n; float start2, end2; clock_t start_timer, end_timer; start2 = clock_second (clock()); time(&start_timer); printf ("Starting countdown...\n"); for(n=0;n<99999999;n++); printf ("FIRE!!!\n"); end2 = clock_second (clock()); time(&end_timer); printf("Temps en secondes: %f\n", (end2-start2)); printf("Temps en secondes: %f\n", (float)(end_timer-start_timer)); //Avec getchar(); puts("ok"); getchar(); time(&start_timer); printf ("Starting countdown...\n"); //for(n=0;n<99999999;n++); getchar(); printf ("FIRE!!!\n"); time(&end_timer); printf("Temps en secondes: %f\n", (float)(end_timer-start_timer)); return 0; } float clock_second (clock_t tps) { return (tps/(float)CLOCKS_PER_SEC); }
Comme on peux le constater sur le code ci-dessus j'ai fais un essai avec time. Non concluant car j'obtient en résultat un entier (soit 1s ou 2s lors de mes tests) alors que clock me renvoi un float.
J'en appele donc à vos connaissance.
Cordialement,
Maniack Crudelis
Partager