int raise(int signal)
Прототип:
Описание:
Функция raise() посылает исполняющейся в текущий момент программе сигнал, который задается параметром signal.
В файле signal.h определены следующие сигналы:
Макрос | Значение |
---|---|
SIGABRT | Ошибка завершения |
SIGBREAK | Пользователь нажал клавиши CTRL-Break |
SIGFPE | Ошибка операции с плавающей запятой |
SIGILL | Неверная инструкция |
SIGINT | Пользователь нажал клавиши CTRL-C |
SIGSEGV | Некорректный доступ к памяти |
SIGTERM | Завершить программу |
SIGUSR1, SIGUSR2, SIGUSR3 | Сигналы, определяемые пользователем |
В случае успеха функция raise() возвращает 0.
Эта функция часто используется совместно с функцией signal().
Пример:
Следующая программа посылает сигнал SIGTERM, вызывающий выполнение функции myhandler():
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
void myhandler(int);
int main(void)
{
signal(SIGTERM, myhandler);
raise (SIGTERM);
printf("This line will not be executed.\n");
return 0;
}
void myhandler(int notused)
{
printf("Program terminated.\n");
exit (1);
}
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
void myhandler(int);
int main(void)
{
signal(SIGTERM, myhandler);
raise (SIGTERM);
printf("This line will not be executed.\n");
return 0;
}
void myhandler(int notused)
{
printf("Program terminated.\n");
exit (1);
}