Problème waitpid attend pas
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:
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));
}
}
} |
Code:
1 2 3 4 5 6
|
[miloutch@ubuntu:~/Bureau/shell2]$firefox
termination*par*:*Unknown*signal*0
errno*=*'0'
terminé*normalement
[miloutch@ubuntu:~/Bureau/shell2]$ |
et bien entendu, le programme lancé ne s'est pas terminé !
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 :)