Я бачу в багато успадкованого програмного забезпечення і погані підручники в Інтернеті , який рекомендується використовувати 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" в моєму питальному тілі .