Partage
  • Partager sur Facebook
  • Partager sur Twitter

Unix pipe buffer

    29 janvier 2015 à 20:32:26

    Bonsoir,

    Je vous expose mon problème. J'ai un fichier executable "executable1" qui quand je l'execute me retourne une infinité de valeurs à interval régulier:

    ./executable1

    valeur1

    valeur2

    valeur3

    etc. toute les x millisecondes et je souhaite utiliser ces valeurs dans un autre script.

    Actuellement je fais ./executable | ./script.py et dans script.py j'ai:

        while 1:
            try:
                currentTime = time.time()
    
                line = sys.stdin.readline()
                buff = line.split(', ')
                if len(buff) == 2:
                    str = "%s %.8f %.8f" % (currentTime, buff[0], buff[1])
                    print str
            except Exception, err:
                print err



    Le problème est que le fichier executable1 envoit des données beaucoup plus rapidement que ce que ./script.py peut traiter et du coup le script ne récupère jamais la dernière valeur générée par le fichier executable1. Je crois savoir que le pipe utilise des buffers en input et output, cela vient peut être de la ?

    Merci et bonne soirée,

    rOse

    -
    Edité par rOse 29 janvier 2015 à 20:35:16

    • Partager sur Facebook
    • Partager sur Twitter

    Unix pipe buffer

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown