appel système opendir dans thread
Bonjour,
je fais un programme qui parcour une arborecsence en largeur via des thread.
Voici mon code et mon probleme :
Code:
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
|
int main(int argc ,char * argv[])
{
. ....
pthread_t prod_thread;
//creation du produceur
pthread_create(&prod_thread, NULL, producteur, arguments);
}
void* producteur(void* args)
{
...........
do
{
if(sommet(f) != NULL)
{
.......
//on recupere un noeud de l'arbre
elementfr = (acopier *) malloc(sizeof(acopier));
elementfr = (acopier *) sommet(f);
printf(" 2 ici : + %s\n", elementfr->cheminSource);
repsource = opendir(elementfr->cheminSource);
}
.............
}
........
} |
Lorsque je fais l'appel à la fonction producteur sans utiliser le thread ca marche bien. Par contre lorsque je l'utilse en thread...le programme "sort" rendu à l'appel OPENDIR.
Il n'affiche pas de message d'erreur. il fait juste sortir...
J'ai l'impression qu'on peut pas faire d'appel systeme dans un thread !!! (??)
Est-ce que quelqu'un a une idée.
merci.
Re: appel système opendir dans thread
Citation:
Envoyé par madimane
Code:
1 2 3 4 5 6 7 8
|
int main(int argc ,char * argv[])
{
. ....
pthread_t prod_thread;
//creation du produceur
pthread_create(&prod_thread, NULL, producteur, arguments); |
'arguments' n'est pas défini. Poste du code compilable, on ne sait pas ce que tu as oublié...