Сигнал
From EjudgeWiki
Сигнал в POSIX-системах - это синхронное или асинхронное сообщение, посланное процессу ядром операционной системы, другим процессом или самим собой. Получение сигнала процессом вызывает приостановку нормального выполнения программы и выполнение действия в зависимости от установленной реакции на сигнал.
Большинство сигналов по умолчанию приводят к снятию процесса с выполнения. При работе тестируемой программы могут возникать следующие сигналы (в скобках указан его номер):
- SIGSEGV (11) - процесс попытался обратится по адресу виртуального адресного пространства, который либо недействителен, либо закрыт на чтение или запись. Скорее всего, это означает, что программа неправильно работает с памятью. Кроме того, ошибка может возникать при переполнении стека.
- SIGBUS (7) - то же самое, что и SIGSEGV.
- SIGILL (4) - попытка выполнить несуществующую инструкцию процессора. Скорее всего, это означает, что в процессе выполнения произошла передача управления на случайный адрес.
- SIGABRT (6) - программа на C или C++ выполнила вызов функции abort().
- SIGFPE (8) - в программах на C или C++ возникает при целочисленном делении на 0. В программах на Pascal/Delphi может возникать и в других ситуациях (уточнить каких).
- SIGKILL (9) - скорее всего означает, что программа не может быть выполнена, так как для того, чтобы начать выполнение, требуется больше памяти, чем разрешено. Другими словами, в программе объявлены глобальные переменные слишком большого размера.