-
Pthread et stdio dur dur
bonjour,
je travaille sur une source qui contient deux threads, ils tournent en permanence tout les deux et se termine en meme temps à la fin du programme.
Le premier thread, fait une boucle avec fgets() pour récuperer les entrées clavier, de sorte qu'on puisse entrée des commandes à mon programme pendant qu'il tourne.
Le deuxieme thread, s'occupe de gestion réseau et doit effectuer des actions sur stdin.
Le probleme :
Etant donné que mon premier thread est bloqué sur le fgets(), lorsque je fais un printf dans le deuxieme thread, rien ne se passe tant que je n'ai pas taper "enter" dans la console.
Je voudrais trouver une solution pour pouvoir effectuer mes sorties, tout en ayant un thread qui lit les entrées, comment faire à part fgets_unlocked()?
-
Pourquoi ne pas utiliser une solution select/sleep sur l'entrée standard? Cela te permettrait de ne pas faire une attente active et de résoudre ton problème.
Jc
-
meme en utilisant un select, les printf du deuxieme thread n'arrive pas sur l'écran. Si vous avez une autre idée, n'hésitez pas.
-
parfait j'ai résolu le probleme en mettant des fflush(stdout); juste apres mes printf, merci quand meme pour le select, c'est utile tout de meme
Bonne nuit