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.