C: fifo lesen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
RobertDebiannutzer
Beiträge: 385
Registriert: 16.06.2017 09:52:36

Re: C: fifo lesen

Beitrag von RobertDebiannutzer » 01.09.2018 14:25:15

@meillo: Gute Anregung, danke!

Dann ist mein Programm ja soweit fertig, herzlichen Dank für eure Hilfe! :THX:
Auf "[gelöst]" setze ich den Thread, wenn ich noch beweiskräftige Dokumentation zu XFlush gefunden habe.

Aber XFlush kommt mir von der Logik her sowieso richtig vor, nachdem ich gerade ein weiteres kleines C-Programm für einen anderen Zweck geschrieben habe. Dieses Programm hört eine Pipe ab und gibt den Input an stdout weiter, wenn er einem bestimmten Muster entspricht. Der Output soll dann durch einen shell-while-loop abgearbeitet werden. Dies soll aber nicht erst geschehen, wenn sich das Programm beendet, sondern Zeile für Zeile!
Somit funktioniert "programm | while read line; do something with $line; done" nicht, wenn das Programm den output mittels printf abgibt. Es funktioniert aber schon, wenn hinter das printf ein "fflush(stdout);" geschaltet ist. (Das hat damit zu tun, das stdout nur line-buffered ist, wenn der Output an ein Terminal geht. Wenn er aber in eine Pipe geht, ist stdout nicht line-buffered. Das muss man erstmal wissen... 8O ). Naja, jedenfalls scheint ja dieses "Output-flushen" auch für standard i/o common practice zu sein, also warum nicht auch beim Xserver?

OT: Weiter vorne im Thread hatte ich ein Stück eines Shell-Scriptes gepostet, wo einfach der Inhalt einer Datei ungeprüft ausgeführt wurde. Das habe ich natürlich noch geändert. Schließlich will ich ja keinen "good-faith-code" Code schreiben ...

Antworten