LinuxForum.Fans
Тема

KBHIT

Автор: krivedk0 8 сообщений 2377 просмотров
#367917

доброго времени суток, линюхоиды
мне нужен аналог функции kbhit из conio.h в linux (GCC).
Функция проверяет нажатие клавиши, но не стопорит прогу .
Заранее спасибо !!!

#368029

библиотека ncurses ф-ция getch()

#368049
vic5710 написал:
библиотека ncurses ф-ция getch()

Гетч стопорит прогу

#368050

там можно задать таймаут
man getch

#368078

На буржуйском форуме нашел :

text
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
 
int kbhit(void)
{
  struct termios oldt, newt;
  int ch;
  int oldf;
 
  tcgetattr(STDIN_FILENO, &oldt);
  newt = oldt;
  newt.c_lflag &= ~(ICANON | ECHO);
  tcsetattr(STDIN_FILENO, TCSANOW, &newt);
  oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
  fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);
 
  ch = getchar();
 
  tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
  fcntl(STDIN_FILENO, F_SETFL, oldf);
 
  if(ch != EOF)
  {
    ungetc(ch, stdin);
    return 1;
  }
 
  return 0;
}
#368092

проще чем с termios и консоль не ломает

Войдите или зарегистрируйтесь, чтобы ответить.