Название: Консольная программа Отправлено: qtист от Сентябрь 28, 2012, 09:06 Как сделать, чтоб консольная программа не реагировала на нажатие ^C
Чё-то ничего не получается :'( Название: Re: Консольная программа Отправлено: Bepec от Сентябрь 28, 2012, 09:22 А зачем?
Название: Re: Консольная программа Отправлено: qtист от Сентябрь 28, 2012, 09:27 чтоб никто не догадался ;D
а серьезно: выход будет по вводу определенного слова(так надо) - это сделано Название: Re: Консольная программа Отправлено: maint от Сентябрь 28, 2012, 09:32 в С и линухе это игнорирование сигнала
signal(СИГНАЛ, SIG_IGN); В хедерах описано. По моему SIGINT Название: Re: Консольная программа Отправлено: maint от Сентябрь 28, 2012, 09:33 вспомнил, в винде вроде надо смотреть в сторону SetConsoleCtrlHandler
Название: Re: Консольная программа Отправлено: qtист от Сентябрь 28, 2012, 09:55 попытался сделать:
void ctrl_c(int nsig){ out << "привет" } ....... signal(SIGINT, ctrl_c); ....... первое нажатие ^C отлавливается-печать есть,но прога напрочь зависает, ещё раз нажали ^C - прога выходит ??? ??? Название: Re: Консольная программа Отправлено: mutineer от Сентябрь 28, 2012, 09:56 Ctrl+Z вроде как проигнорить нельзя, так что выйти из проги можно будет и без специально слова
Название: Re: Консольная программа Отправлено: Bepec от Сентябрь 28, 2012, 09:58 Мораль - хреначь GUI окно и имитируй консоль :)
Название: Re: Консольная программа Отправлено: qtист от Сентябрь 28, 2012, 10:01 GUI нет и не будет(так надо)
сделал так: signal(SIGINT, SIG_IGN); прога напрочь зависает ??? Название: Re: Консольная программа Отправлено: V1KT0P от Сентябрь 28, 2012, 20:38 GUI нет и не будет(так надо) Тебе под какую ОС? На винде вот это код не позволяет заблочить повторную операцию: http://www.google.com.ua/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CCwQFjAB&url=http%3A%2F%2Fwww.opennet.ru%2Fdocs%2FRUS%2Flinux_parallel%2Fnode10.html&ei=Y-BlUP6RA4zEtAaThIHQCQ&usg=AFQjCNHraN_Y0todI_PeZoVTIFXngURfLw&sig2=HgEPtbKhGwIqyH3PoZztdQ (http://www.google.com.ua/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&ved=0CCwQFjAB&url=http%3A%2F%2Fwww.opennet.ru%2Fdocs%2FRUS%2Flinux_parallel%2Fnode10.html&ei=Y-BlUP6RA4zEtAaThIHQCQ&usg=AFQjCNHraN_Y0todI_PeZoVTIFXngURfLw&sig2=HgEPtbKhGwIqyH3PoZztdQ)сделал так: signal(SIGINT, SIG_IGN); прога напрочь зависает ??? Я бы на твоем месте посмотрел в сторону перехвата клавиатуры. Название: Re: Консольная программа Отправлено: alex312 от Сентябрь 28, 2012, 23:05 Я бы на твоем месте посмотрел в сторону перехвата клавиатуры. Ненадо никакого перехвата клавиатуры, как уже писали выше, на винде надо пользовать SetConsoleCtrlHandler |