SIGSEGVсигнал на POSIX-сумісних платформах, який посилається процесу при спробі адресування пам'яті, яка не належить процесу. Символьна змінна SIGSEGV оголошена у заголовному файлі signal.h. Символьні імена для сигналів використовуються через те, що їхні номери залежать від конкретної платформи.

SIGSEGV
Опис Помилка трансляції адреси (не може бути перехопленим або проігнорованим)
Дія за замовчуванням Завершує процес
SA_SIGINFO macros

None

ЕтимологіяРедагувати

SIG є загальноприйнятий префіксом для назв сигналів. SEGV англ. segmentation violation — означає помилка сегментації.

ВикористанняРедагувати

В окремих системах сигнал SIGSEGV не посилається процесу, а використовується ядром системи для підкачки сторінок, в інших, в тому числі UNIX-системах призводить до завершення процесу. Одними з частих причин генерації такого сигналу є помилка в програмі, в результаті якої відбувається вихід за межі масиву або звернення до пам'ті через нульовий або неініціалізований покажчик.

ПрикладРедагувати

Програма мовою C, що намагається виконанти запис в комірку пам'яті з одресою 0:

int main()
{
  *(int *)0 = 1;
  return 0;
}

В UNIX-системах її виконання призводить до генерації сигналу SIGSEGV.

Див. такожРедагувати