ctrl+c

Модератор: Fastman

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
mihan_k
мл. сержант
Сообщения: 70
Зарегистрирован: 2009-01-27 15:44:27

ctrl+c

Непрочитанное сообщение mihan_k » 2009-10-06 16:26:09

Научите, пожалуйста, как запретить остановку выполнения мой программы при помощи клавиш CTRL+C или CTRL+BREAK, если она выполняется в терминале.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: ctrl+c

Непрочитанное сообщение paradox » 2009-10-06 16:27:21

сигналы почитайте

mihan_k
мл. сержант
Сообщения: 70
Зарегистрирован: 2009-01-27 15:44:27

Re: ctrl+c

Непрочитанное сообщение mihan_k » 2009-10-06 16:33:12

Скорость ответа опять же поразительная, чуть больше минуты :smile: , а можно примерно пояснить или направить куда почитать?

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: ctrl+c

Непрочитанное сообщение paradox » 2009-10-06 16:38:12

ну точно не помню
но куда то туда
man signal

Аватара пользователя
Fastman
ст. лейтенант
Сообщения: 1236
Зарегистрирован: 2006-07-07 10:20:38
Откуда: Минск. РБ

Re: ctrl+c

Непрочитанное сообщение Fastman » 2009-10-06 17:21:58

Примерно так.
Обработка Ctrl+C

Код: Выделить всё

#include <stdio.h>
#include <unistd.h>
#include <signal.h>

void Ctrl_C(int sig);

int main(void) 
{
 (void) signal(SIGINT, Ctrl_C);

 while(1)
{
printf("Wait for CtrlC....\n");
sleep(1);
}

 return 0;
}

void Ctrl_C(int sig) 
{
   printf("Wake up !!! - Catched signal: %d !\n", sig);
   (void) signal(SIGINT, SIG_DFL);
}
Отправня точка есть. Если почитать маны, дальше понятно будет.
Главное в жизни здоровье и любовь, остальное я все куплю.

mihan_k
мл. сержант
Сообщения: 70
Зарегистрирован: 2009-01-27 15:44:27

Re: ctrl+c

Непрочитанное сообщение mihan_k » 2009-10-06 19:05:42

Спасибо, всё предельно ясно.
Расскажите ещё, как узнать какой пид получила программа при запуске, а то тоже не нашёл нигде.

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: ctrl+c

Непрочитанное сообщение hizel » 2009-10-06 19:09:07

это невероянтно но функция зовётся getpid :]
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.

mihan_k
мл. сержант
Сообщения: 70
Зарегистрирован: 2009-01-27 15:44:27

Re: ctrl+c

Непрочитанное сообщение mihan_k » 2009-10-06 19:43:13

И точно, что бы я без вас делал :good:

Аватара пользователя
hizel
дядя поня
Сообщения: 9032
Зарегистрирован: 2007-06-29 10:05:02
Откуда: Выборг

Re: ctrl+c

Непрочитанное сообщение hizel » 2009-10-06 19:58:18

возььмите настольной книгой: "UNIX, Професиональное программирование"
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.