Saya melihat di banyak perangkat lunak lama dan tutorial buruk di Internet yang merekomendasikan penggunaan exit(-1), return -1atau serupa dengan mewakili "pemutusan abnormal". Masalahnya, setidaknya dalam POSIX, -1belum pernah dan bukan kode status yang valid. man 3 exitmenggambarkan bahwa exit()pengembalian nilai status & 0377kepada orang tua, yang berarti bahwa -1menjadi 255. Pada sistem non-POSIX, EXIT_FAILUREdirekomendasikan untuk portabilitas. Tapi saya tidak pernah melihat "-1 berarti terminasi abnormal" dalam hubungannya dengan "EXIT_FAILURE mungkin sesuatu selain 1", menunjukkan bahwa mereka jelas percaya "-1" adalah konvensional bahkan pada sistem non-POSIX.
Berikut adalah contoh pertanyaan StackOverflow yang melanggengkan ini. Perangkat lunak "unrealircd" juga merupakan contoh program yang digunakan exit(-1)untuk mengakhiri program. Dalam praktiknya, ini membuatnya sulit untuk berinteraksi systemd.
Dari mana pola anti ini berasal? Apakah ini valid dalam beberapa konteks?
unsigned char.
charkarena rentang nilainya adalah -128 hingga 127. Selanjutnya, saya sudah menyatakan "-1" dikonversi menjadi "255" di badan pertanyaan saya .