Seite 1 von 2

Re: Subprocess Informationen austauschen

Verfasst: Montag 19. April 2021, 22:43
von __deets__
Meines Erachtens ist deren Semantik freundlicher. Flush zumindest musste ich noch nie nutzen. Oder vertue ich mich da gerade?

Spätestens bei zeromq und Nanomsg sind die Vorteile aber unzweifelhaft. Message orientiert, verschiedene Semantiken (pipes, req/response), automatisch verbindend etc.

Re: Subprocess Informationen austauschen

Verfasst: Dienstag 20. April 2021, 09:35
von bert321
Sirius3 hat geschrieben: Montag 19. April 2021, 16:34 Du solltest die eingebaute Funktion `input` nicht durch die Variable `input` überdecken. Würdest Du, wie es sich gehört, alles in einer Funktion stehen haben, würde Dir das auch gleich mit der richtigen Fehlermeldung beschieden.
Wenn Du eine while-Schleife hast, die nur durch einen Dummy-Wert überhaupt startet, hast Du eigentlich eine while-True-Schleife:
Nach der Ausgabe solltest Du die Buffer flushen. Das hat Dir __blackjack__ schon geraten, und das solltest Du in Deinem C-Programm genauso tun.
Danke für deinen Tipp. Leider funktioniert dein Code auch nicht. Es kommt wieder lediglich nur die Ausgabe "first" und sonst nichts. Oder liegt das daran, dass ich mich nocht nicht darum gekümmert habe die Buffer zu flushen?
__blackjack__ hat geschrieben: Montag 19. April 2021, 17:04 Warum um alles in der Welt wird das übersetzte C++-Programm eigentlich mit ``sudo`` gestartet? 😱
Hatte das so aus einem Tutorial

Re: Subprocess Informationen austauschen

Verfasst: Dienstag 20. April 2021, 10:10
von Sirius3
An Deinem C-Code habe ich ja nichts geändert.

Re: Subprocess Informationen austauschen

Verfasst: Dienstag 20. April 2021, 11:20
von bert321
Wenn ich den C-Code aber eigenständig starte funktioniert er.
Woran liegt das eigentlich, dass so Beispiele aus dem Internet gefühlt nie funktionieren? :shock:

Re: Subprocess Informationen austauschen

Verfasst: Dienstag 20. April 2021, 11:53
von __deets__
Weil dein Programm dann in ein terminal ausgjbt. Und das liefert Daten zeilenweise aus. Eine Pipe hingegen ohne flush Buffert gerne mehrere KB.

Re: Subprocess Informationen austauschen

Verfasst: Dienstag 20. April 2021, 13:05
von DeaD_EyE
__blackjack__ hat geschrieben: Montag 19. April 2021, 19:01 Was ist denn an UNIX Domains Sockets oder FIFOs besser?
Nicht besser, sondern anders. Man kann sie wie Dateien behandeln.
Nachteil: Windows kennt keine UNIX-Domains
Woran liegt das eigentlich, dass so Beispiele aus dem Internet gefühlt nie funktionieren?
- Unterschiedliche Rahmenbedingungen
- ohne Sinn und Verstand Code kopiert
- Aufgabe nicht verstanden
- schlechte Aufgabenstellung
- unklare Ziele
- Keine Qualitätssicherung

Re: Subprocess Informationen austauschen

Verfasst: Dienstag 20. April 2021, 16:44
von __blackjack__
@DeaD_EyE: Wie anders? Die Standardein- und ausgabe bei `Popen` sind auch Dateien.