Это реализация kbhit, которую я нашел, но по какой-то причине она просто ждет нажатия клавиши, а не возвращает какой-либо результат, отличный от 0. На самом деле он не работает как kbhit ...
int kbhit(void)
{
struct timeval tv;
fd_set read_fd;
tv.tv_sec=0;
tv.tv_usec=0;
FD_ZERO(&read_fd);
FD_SET(0,&read_fd);
if(select(1, &read_fd, NULL, NULL, &tv) == -1)
return 0;
if(FD_ISSET(0,&read_fd))
return 1;
return 0;
}
Может кто-нибудь объяснить мне, в чем проблема?
Я использую Linux, кстати.
Я думаю, что вы, возможно, неправильно меня поняли, и подумали, что он фактически возвращает ненулевое значение после нажатия клавиши.
моя проблема в том, что kbhit всегда ждет нажатия клавиши.