FIFO-Problem
-
ausserdem wäre select() hier auch angebrachter als diese cpu-fressende Schleife (sofern du das überhaupt nicht-blockierend brauchst).
-
Geflushed wird bei mir sowieso nur in waren und nicht in inventur? Oder liegt hier der Fehler?!
Edit: Mit deiner Änderung gibt er immer erst aus wenn ich waren schließe - y that?
MfG SideWinder
-
Bei close() in Invenur wird automatisch geflusht.
-
DrGreenthumb schrieb:
ausserdem wäre select() hier auch angebrachter als diese cpu-fressende Schleife (sofern du das überhaupt nicht-blockierend brauchst).
Nein aber nmorgen benötige ich auch Non-Blocking-FIFOs und die soll ich ja auch üben für meinen Test
MfG SideWinder
-
Edit: Mit deiner Änderung gibt er immer erst aus wenn ich waren schließe - y that?
printf() ohne einem \n flusht nix. Deshalb auch erst die Ausgabe beim Beenden.
-
DrGreenthumb schrieb:
Edit: Mit deiner Änderung gibt er immer erst aus wenn ich waren schließe - y that?
printf() ohne einem \n flusht nix. Deshalb auch erst die Ausgabe beim Beenden.
omg das wars.
Ausgabe immer erst am Ende weil ich brav zeichenweise gelesen habe und kein Newline gemacht habe -> das spar ich mir jetzt indem ich einfach zeilenweise lese *g*.
Und das inventur nicht beendete lag offenbar an && errno != EAGAIN - wann muss ich überhaupt auf EAGAIN prüfen?
MfG SideWinder
-
EAGAIN Non-blocking I/O has been selected using O_NONBLOCK and no data
was immediately available for reading.
-
Das hab ich auch gelesen - bloß darf ichs ja genau dann nicht einsetzen sondern nur bei ==0 break - also?!
MfG SideWinder
-
read == 0 -> Dateiende
read == -1 -> Fehler, errno könnte zB. EAGAIN sein.
-
Okay dann ist alles klar.
Danke nochmal für eure Hilfe!
MfG SideWinder