exit() y _Exit() en C/C++ son muy similares en funcionalidad. Sin embargo, hay una diferencia entre exit() y _Exit() y es que la función exit() realiza una limpieza antes de la terminación del programa, como la terminación de la conexión, el vaciado del búfer, etc.
salida()
En C, exit() finaliza el proceso de llamada sin ejecutar el resto del código que se encuentra después de la función exit().
Sintaxis:
void exit(int exit_code); // The exit_code is the value which is returned to parent process
Ejemplo:
C
// C program to illustrate exit() function. #include <stdio.h> #include <stdlib.h> // Driver Code int main(void) { printf("START"); exit(0); // The program is terminated here // This line is not printed printf("End of program"); }
START
Explicación: En el programa anterior, primero se llama a la instrucción printf y se imprime el valor. Después de eso, se llama a la función exit() y sale de la ejecución inmediatamente y no imprime la declaración en printf().
_Salida()
La función _Exit() en C/C++ da la finalización normal de un programa sin realizar ninguna tarea de limpieza. Por ejemplo, no ejecuta funciones registradas con atexit.
Sintaxis:
void _Exit(int exit_code); // Here the exit_code represent the exit // status of the program which can be // 0 or non-zero.
Valor devuelto: la función _Exit() no devuelve nada.
CPP
// C++ program to demonstrate use of _Exit() #include <stdio.h> #include <stdlib.h> // Driver Code int main(void) { int exit_code = 10; printf("Termination using _Exit"); _Exit(exit_code); }
Aquí, la salida será nada.
Entendamos la diferencia a través de un ejemplo . Aquí, en el siguiente programa, hemos usado exit() ,
CPP
// A C++ program to show difference // between exit() and _Exit() #include <bits/stdc++.h> using namespace std; void fun(void) { cout << "Exiting"; } // Driver Code int main() { atexit(fun); exit(10); }
Exiting
El código finaliza inmediatamente después de encontrar exit(). Ahora, si reemplazamos exit con _Exit() ,
CPP
// A C++ program to show difference // between exit() and _Exit() #include <bits/stdc++.h> using namespace std; void fun(void) { cout << "Exiting"; } int main() { atexit(fun); _Exit(10); }
No hay salida y no se imprime nada.
Este artículo es una contribución de Bishal Kumar Dubey . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA