Нет, нет, и очень мало того, что вы на самом деле должны делать в обработчике сигналов в любом случае.
Обычно я просто устанавливаю флаг и возвращаюсь, позволяя реальному коду обрабатыватьс этого момента.
Если вы действительно хотите это сделать, вы можете сделать k
статическим на уровне файла, чтобы и main
, и обработчик сигнала (и любая другая функция в файле) моглиполучить доступ к нему, но вам может потребоваться изучить безопасность этого параметра (может ли обработчик сигнала работать, когда реальная программа использует или обновляет значение).
Другими словами, что-то вроде:
static int k = 0;
void signal_callback_handler(int signum) {
k++; // Changing value of k
}
int main() {
// Register signal and signal handler
signal(SIGINT, signal_callback_handler);
: :