anonymous@RULINUX.NET~# Last login: 2024-03-28 19:37:13
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

[C] А как в линуксе проверить нажатие кнопки?

И чтобы при этом программа не останавливалась на ожидание нажатия. Помню в DOS-е я делал так:

c
while(getch()!=27)
{
// делай что угодно
}
 


и программа по ESC выходила из этого бесконечного цикла. А в линуксе такое не работает, даже с ncurses-овским getch() - каждый шаг цикла ждёт нажатия кнопки и не продолжает выполнение, пока не нажмёшь что-нибудь.

anonymous(*) (2012-11-14 18:30:57)

[Ответить на это сообщение]
avatar
Скрыть

Re:[C] А как в линуксе проверить нажатие кнопки?

Там есть пара вариантов. С select, сигналами или ncurses.

SystemV(*)(2012-11-14 19:00:04)

Emacs-w3m/1.4.503 w3m/0.5.3
avatar
Скрыть

Re:[C] А как в линуксе проверить нажатие кнопки?

getchar

Tux-oid(*)(2012-11-14 19:48:35)

Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121011 Firefox/16.0 SeaMonkey/2.13.1
avatar
Скрыть

Re:[C] А как в линуксе проверить нажатие кнопки?

Normally, the tty driver buffers typed characters until a newline or carriage return  is  typed.   The  cbreak
       routine disables line buffering and erase/kill character-processing (interrupt and flow control characters are
       unaffected), making characters typed by the user immediately available to the program.  The  nocbreak  routine
       returns the terminal to normal (cooked) mode.
...
The halfdelay routine is used for half-delay mode, which is similar to cbreak mode in that characters typed by
       the  user are immediately available to the program.  However, after blocking for tenths tenths of seconds, ERR
       is returned if nothing has been typed.  The value of tenths must be a number between 1 and 255.  Use  nocbreak
       to leave half-delay mode.


С уважением,
твой man 3 nodelay

anonymous(*)(2012-11-14 20:57:25)
Отредактировано anonymous по причине "не указана"
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!