¿Cómo puedo vaciar los datos no leídos de una cola de entrada tty en un sistema UNIX?

Mi programa solo tiene que leer UN carácter de la entrada estándar, por lo que usoread(0, buffer, 1). Pero si el usuario inserta más de un solo carácter, permanece en algún búfer y cuando llamo a unread de nuevo todavía están allí.

Entonces, ¿cómo puedo descartar estos personajes? Quiero que cuando llame a unread de nuevo, el búfer se llena con el nuevo carácter, no con los antiguos.

Un ejemplo: tengo unread(0, buffer, 1) y el usuario escribea B C D e. Mi búfer contienea (y está bien), pero luego llamoread(0, buffer, 1) de nuevo y quiero el siguiente carácter escrito por el usuario a partir de ahora, y no elb escrito antes

Respuestas a la pregunta(2)

Su respuesta a la pregunta