Могу ли я предоставить / передать какие-либо аргументы обработчику сигнала?
/* Signal handling */
struct sigaction act;
act.sa_handler = signal_handler;
/* some more settings */
Теперь обработчик выглядит так:
void signal_handler(int signo) {
/* some code */
}
Если я хочу сделать что-то особенное, например, удалить временные файлы, могу ли я предоставить эти файлы в качестве аргумента этому обработчику?
Редактировать 0: Спасибо за ответы. Обычно мы избегаем / не рекомендуем использование глобальных переменных. И в этом случае, если у вас огромная программа, что-то может пойти не так в разных местах, и вам может потребоваться большая очистка. Почему API был разработан таким образом?