Veo en una gran cantidad de software heredado y malos tutoriales en Internet que recomiendan usar exit(-1), return -1o similar, para representar la "terminación anormal". El problema es que, al menos en POSIX, -1nunca ha sido y no es un código de estado válido. man 3 exitilustra que exit()devuelve el valor de status & 0377al padre, lo que significa que se -1convierte en 255. En sistemas que no son POSIX, EXIT_FAILUREse recomienda para la portabilidad. Pero nunca veo "-1 significa terminación anormal" junto con "EXIT_FAILURE puede ser algo distinto de 1", lo que indica que creen claramente que "-1" es convencional incluso en sistemas que no son POSIX.
Aquí hay un ejemplo de una pregunta de StackOverflow que perpetúa esto. El software "no realircd" también es un ejemplo de un programa que se utiliza exit(-1)para finalizar el programa. En la práctica, esto dificulta la interacción con ellos systemd.
¿De dónde vino este antipatrón? ¿Es válido en algún contexto?
unsigned char.
charya que su rango de valores es -128 a 127. Además, ya dije "-1" se convierte en "255" en mi cuerpo de preguntas .