Bonjour � tous,
Ma question est tr�s simple, j'ai un processus dans une fonction C++, qui peut durer trop longtemps dans certains cas (ce que je vous donne est juste une version simplifi�e).
Je souhaite donc arr�ter ce processus lorsqu'il dure plus de X secondes, mais pour cela je dois �valuer le temps moyen de ce processus.
J'utilise pour cela la fonction suivante, o� le processus en question est un simple "HELLO".
Malheureusement le compteur me donne syst�matiquement (lasttime =) z�ro � la fin, m�me si le processus est plus long.
Je dois faire un truc faux quelque part, est ce que vous voyez mon erreur ?
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 #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> void test(){ int pid = 0; double lasttime=0; int status = 0; pid = fork(); if( pid == 0 ){ system("echo HELLO"); } else { int counter = 0; while (1) { counter++; if( counter > lasttime ) lasttime = counter; if (waitpid(pid, &status, 0) == pid) break; } } return; }
En vous remerciant d'avance,
Xavier
Partager