Subprocess Informationen austauschen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
__deets__
User
Beiträge: 14533
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
bert321
User
Beiträge: 7
Registriert: Mittwoch 7. April 2021, 14:53

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
Sirius3
User
Beiträge: 17745
Registriert: Sonntag 21. Oktober 2012, 17:20

An Deinem C-Code habe ich ja nichts geändert.
bert321
User
Beiträge: 7
Registriert: Mittwoch 7. April 2021, 14:53

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:
__deets__
User
Beiträge: 14533
Registriert: Mittwoch 14. Oktober 2015, 14:29

Weil dein Programm dann in ein terminal ausgjbt. Und das liefert Daten zeilenweise aus. Eine Pipe hingegen ohne flush Buffert gerne mehrere KB.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1019
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

__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
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Benutzeravatar
__blackjack__
User
Beiträge: 13099
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@DeaD_EyE: Wie anders? Die Standardein- und ausgabe bei `Popen` sind auch Dateien.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten