Fifo leeren



  • Guten Morgen,

    ein Prozess läuft die ganze Zeit und schreibt unter Umständen in eine Fifo. Irgendwann wird dann ein zweiter Prozess gestartet, welcher diese Fifo auslesen soll. Dabei soll jetzt aber nur dass ausgelesen werden, was zur Zeit des zweiten Prozesses reingeschrieben wurde. Sprich, alles was vorher schon drinstand soll wegfallen.

    Wie tut man das?

    Danke



  • IPC = Interprozesskommunikation ....
    Pipe = FIFO (nicht andersrum) ;p

    Such mal nach den begriffen, da findest sicher Hilfe.
    Gibt auch noch mehr elemente ....

    Prinzipiell fuer deinen Anwendungsfall vielleicht ne gute Strategie:

    Prozess 1 startet ....
    Prozess 2 startet auch irgendwann (weiss ned, wer erzeugt den ? ) ....
    Prozess 2 informiert Prozess 1, dass er nun da ist (ueber den erzeuger ??? oder nen globals benamstes IPC object ) ...
    Prozess 1 erzeugt ne Pipe und uebermittelt die Prozess 2.
    Prozess 1 beginnt nun in die Pipe zu schreiben (vorher wuerde ers sonstwohin schreiben ... )
    Prozess 2 liest halt aus der pipe (braucht nur lesezugriff) ...
    Prozess 2 wird irgendwann beendet ...
    Prozess 2 teilt das als letze Handlung noch prozess 1 mit
    Prozess 1 zerstoert die pipe und schreibt sein Zeug wieder sonstwo hin 🙂

    Ciao ...



  • Danke, aber hat sich schon erledigt. Dass, was ich als Problem sah, ist eigentlich gar keins 🤡

    IPC = Interprozesskommunikation ....
    Pipe = FIFO (nicht andersrum) ;p

    Ja, ich weiß. Aber die Prozesse sollen gar nicht kommunizieren. Prozess A schreibt in die Named-Pipe und B ließt wenn er Lust hat, ohne das der eine weiß, dass es den anderen gibt.

    Achso, aber wenn jemand weiß, ob und wie man das machen könnte, interessierts mich trotzdem.


Anmelden zum Antworten