Salut à tous !
voilà j'ai un programme qui créé des processus fils, mais malheureusement, le waitpid ne marche que de temps en temps, ca dépend des jours.
j'ai utilisé psignal, et mon fils est terminé par Unknown signal 0
je vous montre le code et son resultat :
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 void attend(int n, int *etat, int *fpid) { int i; int status; for(i=0;i<n;i++) { waitpid(fpid[i],&status,1);//attend pour tous les fils psignal(status,"termination par "); printf("errno = '%X'\n",errno); if(WIFEXITED(status)) printf("terminé normalement\n"); if(WIFSIGNALED(status)) { printf("signal non recepte\n"); printf("No signal = %d\n",WTERMSIG(status)); } } }et bien entendu, le programme lancé ne s'est pas terminé !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [miloutch@ubuntu:~/Bureau/shell2]$firefox termination*par*:*Unknown*signal*0 errno*=*'0' terminé*normalement [miloutch@ubuntu:~/Bureau/shell2]$
Comme je vou l'ai dit, j'ai remarqué que le waitpid attend mon fils que de temps en temps.
un jour ca marche, un jour ca marche pas. Je n'ai aucune idée d'ou ca peut venir.
en tout cas même si ca dépend des jours, ca marche, donc je suppose que l'erreur ne vient pas du code que j'ai fait pour le waitpid.
si quelqu'un a déjà eu ce genre de problèmes, je suis preneur pour une solution.
merci![]()
Partager