Bonjour,
dans un programme j'utilise des threads, aucunne erreur de compilation ou quoi que ce soit, mais j'ai le problème suivant:
mon processus principal lit un fichier ligne par ligne, une fois la ligne obtenue, un thread va la traiter. Seulement, la procédure associée au thread reçoit apparemment la dernière ligne du fichier à chaque fois...
en effet, pour un fichier de 3 lignes par exemple, si je teste la valeur de chaque ligne avant de passer la ligne en arguments, les 3 lignes ont bien été lues.
Dans la procédure de l'argument si je demande qu'il m'imprime successivement toutes les lignes qu'elle reçoit, elle m'affichera 3 fois la ligne numéro 3.
Mon code est le suivant, rien d'exeptionnel..
au niveau de l'envoi de la ligne lue
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14<...> while(fgets(line,256,f)!= NULL) { /* traitement de la ligne, lancement du premier groupe de threads (un seul pour l'instant) */ printf("ligne envoyée 1 = %s", line); pthread_create( &tid[cpt], NULL, lecture_aux, (void*)line); cpt++; } <...>
au niveau de la réception de la ligne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
mes threads se terminent bien, le problème ne devrait pas venir de là.
Les threads ayant parcontre en commun le même code que le processus principal, le problème ne viendrait-il pas de là?
J'espere avoir été clair dans mes explications.
D'avance je vous remercie

 

 
		
		 
         
 

 
			
			


 
   


 problème d'exécution concurrente
 problème d'exécution concurrente
				 Répondre avec citation
  Répondre avec citation

 
			 
   
  Envoyé par seb__
 Envoyé par seb__
					
				

 
			 
  
						 
 
Partager