Bonjour,
j'ai un peu souci avec le select du perl. Voilà, je souhaite poller plusieurs fifos sous linux. Pour celà, j'ouvra avec la méthode sysopen (mode non bloquant) et fdopen les fifos puis je les associe au select ($Sel) avec la méthode add. Puis je crée un boucle while( @read = $Sel->can_read()) qui scrute en permanence tous les fichiers associe au select. Lorsque le can_read saute alors je lance un traitement sur tous les handles contenu dans le tableau read pour savoir lequel à sauter. J'effectue également une lecture dans les fifos pour les vider (avec getline ou sysread). Mon problème est qu'une fois mon traitment fini, le can_read saute automatiquement comme si le handle était toujours plein (ce qui n'est pourtant pas le cas). Pour éviter qu'il saute je suis obligé de faire un remove du handle( $Sel->remove($buf) if eof($buf)

et de réouvrir le fichier avec sysopen et fdopen et de l'associer à nouveau au select ($Sel->add).
J'aimerai savoir si qqn sait comment on peut faire pour éviter de faire à chaque fois un remove et un add lorsque le can_read saute.
Poste le Monday 21 November 2005 14:21:57