_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);

    Requisitos de Macros de Prueba de Características para glibc (véase feature_test_macros(7)):

_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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.