Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Select Perl
Envoyé par: superjb

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)winking smiley 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
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Select Perl
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons