Я погуглил повсюду и не нашел CLEAR-инструкций по использованию определяемого пользователем сигнала (SIGUSR1 / SIGUSR2).
Контекст: я пытаюсь отправить сигнал во время работыобработать так, чтобы после отправки сигнала обработчик сигнала напечатал инструкцию, сообщающую пользователю, что сигнал был пойман.Я попытался использовать обработчик сигнала, как показано ниже.
void signalHandler(int signalNum) {
if (signalNum == SIGUSR1) {
printf("Caught SIGUSR1 signal.\n");
}
}
/* Call in main as follows */
signal(SIGUSR1, signalHandler);
Теперь, насколько я понимаю, можно поднять сигнал внутри процесса, используя функцию поднимать (), которую я пробовал (япытаюсь сделать следующее БЕЗ разветвления или использования последующих дочерних / родительских процессов).При использовании подхода, который я показал выше, программа никогда не выполняет какой-либо код внутри функции обработчика сигнала, даже если это оператор print перед оператором if.
После этого я также попытался:
signalHandler(raise(SIGUSR1));
Простите, если мои подходы запрещены, я пришел из Python.Спасибо!
РЕДАКТИРОВАТЬ: мне нужно, чтобы программа автономно сигнализировала себя, перехватывала сигнал, печатала сообщение ТОГДА перестала выполняться.Не использовать CLI.