Страница 1 из 1

ctrl+c

Добавлено: 2009-10-06 16:26:09
mihan_k
Научите, пожалуйста, как запретить остановку выполнения мой программы при помощи клавиш CTRL+C или CTRL+BREAK, если она выполняется в терминале.

Re: ctrl+c

Добавлено: 2009-10-06 16:27:21
paradox
сигналы почитайте

Re: ctrl+c

Добавлено: 2009-10-06 16:33:12
mihan_k
Скорость ответа опять же поразительная, чуть больше минуты :smile: , а можно примерно пояснить или направить куда почитать?

Re: ctrl+c

Добавлено: 2009-10-06 16:38:12
paradox
ну точно не помню
но куда то туда
man signal

Re: ctrl+c

Добавлено: 2009-10-06 17:21:58
Fastman
Примерно так.
Обработка 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);
}
Отправня точка есть. Если почитать маны, дальше понятно будет.

Re: ctrl+c

Добавлено: 2009-10-06 19:05:42
mihan_k
Спасибо, всё предельно ясно.
Расскажите ещё, как узнать какой пид получила программа при запуске, а то тоже не нашёл нигде.

Re: ctrl+c

Добавлено: 2009-10-06 19:09:07
hizel
это невероянтно но функция зовётся getpid :]

Re: ctrl+c

Добавлено: 2009-10-06 19:43:13
mihan_k
И точно, что бы я без вас делал :good:

Re: ctrl+c

Добавлено: 2009-10-06 19:58:18
hizel
возььмите настольной книгой: "UNIX, Професиональное программирование"