Fehlermeldung 1798 Segmentation fault
-
linux_c89 schrieb:
müsste stderr nicht sowieso ungepuffert sein?
Warum sollte das so sein?
-
mngbd schrieb:
linux_c89 schrieb:
müsste stderr nicht sowieso ungepuffert sein?
Warum sollte das so sein?
Damit im Fehlerfall möglichst viel Ausgabe erscheint anstatt in einem Puffer zu versanden.
-
SeppJ schrieb:
Damit im Fehlerfall möglichst viel Ausgabe erscheint anstatt in einem Puffer zu versanden.
Ich denke eher, dass stderr verhindern soll, dass eine Fehlermeldung mit der Ausgabe vermischt wird. Was ihr meint, ist kein geplanter Fehlerfall sondern ein Crash. Darauf kann man zur Laufzeit gar nicht reagieren, denn könnte man, wäre es kein Crash.
Darf man eigentlich setvbuf() auf die Standard-Streams anwenden?
-
Zitat aus dem C89-Standard
At program startup, three text streams are predefined and need not
be opened explicitly --- standard input (for reading conventional
input), standard output (for writing conventional output), and
standard error (for writing diagnostic output). When opened, the
standard error stream is not fully bufferedDas heißt stderr ist maximal line-buffered
(Das Zitat habe ich von http://flash-gordon.me.uk/ansi.c.txt)
-
linux_c89 schrieb:
...
Das heißt stderr ist maximal line-bufferedDu hast völlig recht, in C99 ist das genauso. Wieder was gelernt.