Wie kann ich ungelesene Daten aus einer tty-Eingabewarteschlange auf einem UNIX-System löschen?

Mein Programm muss nur EIN Zeichen von der Standardeingabe lesen, und so verwende ichread(0, buffer, 1). Aber wenn der Benutzer mehr als ein einzelnes Zeichen einfügt, bleiben sie in einem Puffer und wenn ich a aufruferead wieder sind sie immer noch da.

Wie kann ich diese Zeichen verwerfen? Ich will das, wenn ich a anruferead Auch hier wird der Puffer mit dem neuen Zeichen gefüllt, nicht mit den alten.

Ein Beispiel: Ich habe einread(0, buffer, 1) und der Benutzer schreibtabcde. Mein Puffer enthälta (und es ist richtig), aber dann rufe ich anread(0, buffer, 1) wieder und ich möchte das nächste Zeichen, das der Benutzer von jetzt an geschrieben hat, und nicht dasb vorher geschrieben.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage