Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> kbhit под SOLARIS 
:(
    Опции темы
John_Doe
Дата 28.7.2004, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 16.7.2004

Репутация: нет
Всего: нет



Hi all,

Старый вопрос, но, видимо, я совсем новичок под юнихом.
В общем, нашёл в фак-ах такое:

Код

static struct termios stored_settings;

void set_keypress(void)
{
 struct termios new_settings;
 tcgetattr(0,&stored_settings);
 new_settings = stored_settings;
 /* Disable canonical mode, and set buffer size to 1 byte */
 new_settings.c_lflag &= (~ICANON);
 new_settings.c_cc[VTIME] = 0;
 new_settings.c_cc[VMIN] = 1;
 tcsetattr(0,TCSANOW,&new_settings);
}

void reset_keypress(void)
{
 tcsetattr(0,TCSANOW,&stored_settings);
}


Но что дальше с этим делать?.. Как это poll или signal?

Заранее благодарен за помощь!
PM MAIL   Вверх
John_Doe
Дата 3.8.2004, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 16.7.2004

Репутация: нет
Всего: нет



Сам себе и ответил bored.gif
Соответственно, после вызова set_keypress(), делается так:

#include <poll.h>
bool kbhit()
{
pollfd_t fd = {0, POLLNORM};
return poll(&fd, 1, 0) != 0;
}

Другой вопрос, что не возможно отличить нажатие клавиши курсора от нажатия ESCAPE и ещё 2х клавиш подряд, т.к. после курсора сыпятся 3 скан-кода, первый из которых равен 0х1В и совпадает с кодом эскейпа. sad.gif Проверка с kbhit() после чтения первого скан-кода не помогает.
Если у кого будут идеи и предложения, буду рад...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.