Как при срабатывании SIGINT правильно передать значение переменной i в функцию closing - C (СИ)
Формулировка задачи:
Имеется код:
Подскажите, как при срабатывании SIGINT правильно передать значение переменной i в функцию closing?
Пробовал что-то типа signal(SIGINT, closing(i)), но компилятор ругается.
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void closing(int number) {
printf ("%d\n", number);
exit(1);
}
int main(void) {
int i;
signal(SIGINT, closing);
i = 0;
while(1) { i++; }
}Решение задачи: «Как при срабатывании SIGINT правильно передать значение переменной i в функцию closing»
textual
Листинг программы
if ((ch = getc(stdin)) == 'q') {
closing(i);
}
Объяснение кода листинга программы
- В начале кода используется оператор if для проверки значения символа, полученного из стандартного ввода (stdin).
- Значение символа сохраняется в переменной ch.
- Если значение символа равно 'q', то вызывается функция closing.
- В качестве аргумента для функции closing используется переменная i.
- Значение переменной i передается в функцию closing.
- Если символ не равен 'q', то выполняется блок кода без использования функций или переменных.