Я хочу иметь возможность использовать select()
для работы с вводом одного символа (без ENTER) из STDIN.
Поэтому, когда пользователь нажимает одну клавишу, select()
должен немедленно вернуться,не дожидаясь, пока пользователь нажмет ENTER.
int main(void)
{
fd_set rfds;
struct timeval tv;
int retval;
/* Watch stdin (fd 0) to see when it has input. */
FD_ZERO(&rfds);
FD_SET(0, &rfds);
/* Wait up to 2 seconds. */
tv.tv_sec = 2;
tv.tv_usec = 0;
retval = select(1, &rfds, NULL, NULL, &tv);
if (retval == -1)
perror("select()");
else if (retval)
printf("Data is available now.\n");
else
printf("No data within five seconds.\n");
exit(EXIT_SUCCESS);
}
Это работает, но вы должны нажать клавишу ENTER, чтобы закончить.Я просто хочу, чтобы выбор не ждал, пока пользователь нажмет клавишу, и ENTER.
Спасибо.