bonsoir,
je suis sous linux et je voudrai créer une fonction qui me compte le temps.
en fait mon compteur doit etre dans un thread qui doit tuer son fil d'exécution principal au bout de 10 secondes
pendant ces 10 seconde, le fil principal doit executer des actions...
j'ai pensé à lafonction sleep() mais je crois qu'elle attend 10 secondes avant d'exécuter la suite du code, donc, dans mon cas, pendant ces 10 seconde le processus ne fait rien
et après ces 10 seconde, il est tué
en tous cas c'est l'impression que j'ai sur l'execution de mon code...
est ce que mon code est correct et mon impression avec sleep() est correct ou puis je proceder autrement ?
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
35
36 /*crée un tread timer*/ void *timer(pid_t p) { sleep(10); kill(p, SIGALRM); pthread_exit(NULL); } int main(void) { //... /*création du processus process*/ pid_t process; process = fork(); if(process == -1) { printf("Erreur de création du processus process\n"); } else if(process == 0) { pthread_t t1; int th_id = pthread_create(&t1, NULL, timer(getpid()), NULL); //ecriture dans des fichiers //... pthread_join(t1, NULL); } else { wait(process); } //... //... }
Merci d'avance pour vos réponses
Partager