Страница 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
Скорость ответа опять же поразительная, чуть больше минуты

, а можно примерно пояснить или направить куда почитать?
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
И точно, что бы я без вас делал

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