Como posso liberar dados não lidos de uma fila de entrada tty em um sistema UNIX?

Meu programa tem que ler apenas um caractere da entrada padrão, e então eu usoread(0, buffer, 1). Mas se o usuário inserir mais de um caractere, eles permanecerão em algum buffer e quando eu chamar umread novamente eles ainda estão lá.

Então, como posso descartar esses personagens? Eu quero isso quando eu chamo umread novamente, o buffer é preenchido com o novo caractere, não com os antigos.

Um exemplo: eu tenho umread(0, buffer, 1) e o usuário escreveabcde. Meu buffer contéma (e está certo), mas então eu chamoread(0, buffer, 1) novamente e eu quero o próximo caractere escrito pelo usuário a partir de agora, e não ob escrito antes.

questionAnswers(2)

yourAnswerToTheQuestion