Fehlermeldung 1798 Segmentation fault



  • linux_c89 schrieb:

    müsste stderr nicht sowieso ungepuffert sein?

    Warum sollte das so sein?
    🙂


  • Mod

    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 buffered

    Das 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-buffered

    Du hast völlig recht, in C99 ist das genauso. Wieder was gelernt.
    🙂


Anmelden zum Antworten