Ma lo fa automaticamente la select.
Quando ci sono caratteri pronti alla lettura ritorna il file descriptor.
Quindi se sei nel blocco:
codice:
else if (retval) {
        printf("Data is available now.\n");
        /* FD_ISSET(0, &rfds) will be true. */
        scanf("%d", &n);
     }
Ci sono perforza dei caratteri da leggere.
Non saprei come svuotare il buffer in altro modo ... non so prova fflush.