exit es una instrucción de salto en lenguaje C/C++ que toma un número entero (cero o distinto de cero) para representar diferentes estados de salida.
Hay dos tipos de estado de salida en C/C++:
- Éxito de salida: El éxito de salida se indica mediante la instrucción exit(0) , lo que significa que el programa ha terminado con éxito, es decir, el programa se ha ejecutado sin errores ni interrupciones.
#include <file.h>
#include <stdio.h>
int
main()
{
FILE
* file;
// opening the file in read-only mode
file =
fopen
(
"myFile.txt"
,
"r"
);
printf
(
"File opening successful!"
);
// EXIT_SUCCESS
exit
(0);
}
Nota: Cree un archivo llamado ‘myFile.txt’ y ejecute el código en su dispositivo local para ver el resultado.
- Fallo de salida: El fallo de salida se indica mediante exit(1) , lo que significa la finalización anormal del programa, es decir, se ha producido algún error o interrupción. Podemos usar diferentes enteros distintos de 1 para indicar diferentes tipos de errores.
#include <file.h>
#include <stdio.h>
int
main()
{
FILE
* file;
// open the file in read-only mode
file =
fopen
(
"myFile.txt"
,
"r"
);
if
(file == NULL) {
printf
(
"Error in opening file"
);
// EXIT_FAILURE
exit
(1);
}
// EXIT_SUCCESS
exit
(0);
}
Veamos las diferencias entre estas dos afirmaciones-
salir(0) | salir(1) |
---|---|
Informa de la terminación/finalización exitosa del programa. | Informa de la terminación anormal del programa. |
Informa la terminación cuando el programa se ejecuta sin ningún error. | Reporta la terminación cuando ocurre algún error o interrupción durante la ejecución del programa. |
La sintaxis es exit(0); | La sintaxis es exit(1); |
El uso de exit(0) es totalmente portátil. | El uso de exit(1) no es portátil. |
La macro utilizada para el código de retorno 0 es EXIT_SUCCESS | La macro utilizada para el código de retorno 1 es EXIT_FAILURE |
EXIT_SUCCESS está definido por el estándar como cero. | EXIT_FAILURE no está restringido por el estándar para ser uno, pero muchos sistemas lo implementan como uno. |