table of contents
_exit(2) | System Calls Manual | _exit(2) |
NOMBRE¶
_exit, _Exit - Provoca la finalización del proceso actual
BIBLIOTECA¶
Biblioteca Estándar C (libc, -lc)
SINOPSIS¶
#include <unistd.h>
[[noreturn]] void _exit(int estado);
#include <stdlib.h>
[[noreturn]] void _Exit(int estado);
_Exit():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
DESCRIPCIÓN¶
_exit() finaliza el proceso de llamada inmediatamente. Se cerrará cualquier descriptor de archivo abierto perteneciente al proceso. Los hijos del proceso son heredados por init(1) (o por el proceso «subreaper» más próximo, definido mediante la operación PR_SET_CHILD_SUBREAPER de prctl(2)). El padre del proceso recibirá una señal SIGCHLD.
Se retorna al proceso padre el valor status & 0xFF como estado de salida del proceso y puede ser recopilado por el padre mediante una de las llamadas de la familia wait(2).
La función _Exit() es equivalente a _exit().
VALOR DEVUELTO¶
Estas funciones nunca regresan.
ESTÁNDARES¶
- _exit()
- POSIX.1-2008.
- _Exit()
- C11, POSIX.1-2008.
HISTORIAL¶
POSIX.1-2001, SVr4, 4.3BSD.
_Exit() fue introducido por C99.
NOTAS¶
Para una discusión sobre los efectos de una llamada exit, la transmisión de estados de salida, procesos zombie, señales enviadas, etc., vea exit(3).
La función _exit() es similar a exit(3), pero no invoca ninguna función registrada con atexit(3) o on_exit(3). No se vuelcan los flujos stdio(3) abiertos. Por otro lado, _exit() cierra los descriptores de archivo abiertos, lo que puede causar un retraso indeterminado a la espera de que finalice la salida pendiente. Si el retraso no es deseado, puede ser útil llamar a funciones como tcflush(3) antes de llamar a _exit(). La cancelación de cualquier E/S pendiente y cuales E/S pendiente se puede cancelar con _exit() dependerá de la implementación.
Diferencias núcleo / biblioteca C¶
En DESCRIPCIÓN, se describe el efecto tradicional de _exit(), que consiste en terminar un proceso. Esta es la semántica definida en POSIX.1 e implementada por la función contenedora de la biblioteca C. En los sistemas modernos, esto significa la terminación de todos los hilos del proceso.
A diferencia de la función contenedora de la biblioteca C, la llamada al sistema _exit() de Linux termina solo el hilo que realiza la llamada, y acciones como reparentar procesos secundarios o enviar SIGCHLD al proceso primario solo se realizan si este es el último hilo del grupo.
Hasta glibc 2.3, la función contenedora _exit() invocaba la llamada al sistema del núcleo del mismo nombre. Desde glibc 2.3, esta función invoca exit_group(2) para terminar todos los hilos de un proceso.
VÉASE TAMBIÉN¶
execve(2), exit_group(2), fork(2), kill(2), wait(2), wait4(2), waitpid(2), atexit(3), exit(3), on_exit(3), termios(3)
TRADUCCIÓN¶
La traducción al español de esta página del manual fue creada por Juan Piernas <piernas@ditec.um.es>, Nicolás Lichtmaier <nick@debian.org>, Miguel Pérez Ibars <mpi79470@alu.um.es> y Marcos Fouces <marcos@debian.org>
Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.
2 Mayo 2024 | Páginas de Manual de Linux 6.9.1 |