Jak mogę opróżnić nieprzeczytane dane z kolejki wejściowej tty w systemie UNIX?
Mój program musi odczytywać tylko jeden znak ze standardowego wejścia, więc używamread(0, buffer, 1)
. Ale jeśli użytkownik wstawi więcej niż jeden znak, pozostanie w jakimś buforze i gdy zadzwonięread
znowu są tam.
Jak więc mogę odrzucić te postacie? Chcę tego, kiedy dzwonięread
ponownie bufor jest wypełniony nową postacią, a nie starymi.
Przykład: mamread(0, buffer, 1)
a użytkownik piszeabcde. Mój bufor zawieraa (i ma rację), ale potem dzwonięread(0, buffer, 1)
ponownie i chcę, aby od teraz napisał następny znak, a nieb napisane wcześniej.