Sobes.tech
Назад к вопросам
Junior — Middle
78

Какова роль и назначение сигналов в операционной системе Linux?

Ответ от нейросети

sobes.tech AI

Сигналы в операционной системе Linux — это механизм асинхронного уведомления процесса о наступлении определённых событий. Они позволяют процессам реагировать на внешние или внутренние события, например, прерывания, ошибки или запросы пользователя.

Роль сигналов:

  • Оповещение процесса о событиях (например, завершение дочернего процесса, нажатие Ctrl+C).
  • Управление процессами (например, остановка, продолжение, завершение).
  • Обработка ошибок (например, деление на ноль вызывает сигнал SIGFPE).

Процесс может установить обработчик сигнала, который выполнится при получении сигнала, или использовать стандартное поведение (завершение, игнорирование и т.д.).

Пример обработки сигнала SIGINT (Ctrl+C) на C:

#include <signal.h>
#include <stdio.h>
#include <unistd.h>

void handler(int signum) {
    printf("Получен сигнал %d, завершаем работу\n", signum);
    _exit(0);
}

int main() {
    signal(SIGINT, handler);
    while(1) {
        printf("Работаем...\n");
        sleep(1);
    }
    return 0;
}