Я бачу в багато успадкованого програмного забезпечення і погані підручники в Інтернеті , який рекомендується використовувати exit(-1), return -1або східного представляти «аварійне завершення». Проблема полягає в тому, що принаймні в POSIX -1ніколи не було і не є дійсним кодом статусу. man 3 exitілюструє, що exit()повертає значення status & 0377батьківського значення, тобто значення, яке -1стає 255. У системах, що не EXIT_FAILUREє POSIX, рекомендується для перенесення. Але я ніколи не бачу, щоб "-1 означає аномальне припинення" спільно з "EXIT_FAILURE може бути чимось іншим, ніж 1", що вказує на те, що вони чітко вважають, що "-1" є звичайним навіть у системах, що не є POSIX.
Ось приклад питання StackOverflow, який продовжує це. Програмне забезпечення "unrealircd" також є прикладом програми, яка використовується exit(-1)для припинення програми. На практиці це ускладнює взаємодію з ними systemd.
Звідки взявся цей антидіапазон? Чи дійсно це в якомусь контексті?
unsigned char.
charоскільки його діапазон значень становить від -128 до 127. Крім того, я вже заявив, що "-1" перетворюється на "255" в моєму питальному тілі .