Система сигнальной разведки и подавления радиотехнических средств (SIGINT)
SIGINT (Signal Interrupt) является сигналом, отправляемым операционной системой при прерывании процесса с помощью комбинации клавиш Ctrl+C. Этот сигнал предназначен для остановки программы обработчику сигналов (signal handler), который может выполнять необходимые действия или завершить программу нормальным образом.
Вот пример кода на C++, демонстрирующий использование обработчика SIGINT:
cpp
#include
#include
// Обработчик сигнала SIGINT
void sigintHandler(int signal) {
std::cout << "Received SIGINT signal. Exiting..." << std::endl;
exit(signal);
}
int main() {
// Установка обработчика для SIGINT
signal(SIGINT, sigintHandler);
std::cout << "Running..." << std::endl;
while (true) {
// Некая долгая работа
}
return 0;
}
Когда программа выполняется, она будет ожидать долгую работу в цикле. Если во время выполнения пользователь нажмет Ctrl+C, операционная система отправит сигнал SIGINT, и обработчик sigintHandler будет вызван. В данном примере обработчик просто выводит сообщение о получении сигнала и завершает программу с помощью функции exit().
Это лишь пример использования обработчика SIGINT. В реальности можно выполнять различные действия при получении сигнала SIGINT, например, сохранять данные, закрывать файлы или освобождать ресурсы перед завершением программы.