fflush(stdin) bei SuSE Linux 9.1



  • Hi!

    Habe ein komisches C-Problem:
    fflush(stdin) sollte ja eigentlich den Eingabepuffer leeren.
    Nun habe ich internerweise SuSE Linux 9.1 Prof. installieren müssen und wenn ich das Programm dort ausführe, stehen die Zeichen nach fflush immernoch im Eingabepuffer. Auf anderen Maschinen bzw. OS' mit BSD oder Solaris geht alles.
    Ist doch komisch, oder? Kennt jemand einen derartigen Bug?

    MfG, RTC



  • Das ist kein Bug.

    Genmäß ANSI C ist fflsuh für Eingabestreams (wie stdin) nicht definiert. Wenn es irgendwo funktioniert, dann nur, weil es eine nicht portable Erweiterung ist.

    So gesehen ist der Bug also in Deiner Anwendung: Du verwendest Systemabh. Features in Deiner Anwendung, die du offenbar portabel halten willst.



  • Steht übrigens sogar in den FAQ.



  • Ok, danke erstmal - wusste ja nicht, dass das eine FAQ-Sache ist - habe jetzt alle Dokumente diesbezüglich gefunden...



  • RTC schrieb:

    IMHO ist das auch kein Bug in meiner Anwendung, sondern ein Bug in den Systemen, die das falsch implementieren, aber das ist Auslegungssache...

    Nein, ist es nicht, das ist eindeutig ein Fehler Deinerseits.
    Da Du die FAQ scheinbar nicht selbst konsultieren wolltest:
    C/C++ Forum :: FAQ - ANSI C :: fflush(stdin); ??



  • Meinen VOR deiner Antwort geänderten Beitrag hast du aber schon gelesen, oder?



  • RTC schrieb:

    Meinen VOR deiner Antwort geänderten Beitrag hast du aber schon gelesen, oder?

    Nein, hast Du ja nur 3 Minuten bevor ich auf "Absenden" geklickt habe editiert.

    Ich wusste ja auch nicht mehr, ob ich den FAQ-Beitrag auf Humes Seite oder hier gesehen hatte, musste erst suchen.



  • Ist ja auch egal, zumindest hatte ich es schon gelesen.

    Die Edits bezogen sich auch nur darauf, weil ich erst etwas missverstanden hatte, nach ein wenig Überlegung aber umgedacht hab. Dann war's klar...


Anmelden zum Antworten