Как при срабатывании SIGINT правильно передать значение переменной i в функцию closing - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Имеется код:
#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? Пробовал что-то типа signal(SIGINT, closing(i)), но компилятор ругается.

Решение задачи: «Как при срабатывании SIGINT правильно передать значение переменной i в функцию closing»

textual
Листинг программы
if ((ch = getc(stdin)) == 'q') {
        closing(i);
    }

Объяснение кода листинга программы

  1. В начале кода используется оператор if для проверки значения символа, полученного из стандартного ввода (stdin).
  2. Значение символа сохраняется в переменной ch.
  3. Если значение символа равно 'q', то вызывается функция closing.
  4. В качестве аргумента для функции closing используется переменная i.
  5. Значение переменной i передается в функцию closing.
  6. Если символ не равен 'q', то выполняется блок кода без использования функций или переменных.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы