1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl>.
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" Modified Sat Jul 24 19:43:49 1993 by Rik Faith (faith@cs.unc.edu)
.\" Added a fix from urs@isnogud.escape.de (Urs Thuermann), aeb 950722
.\" Translated into Spanish Fri 9 Jan 1998 by Gerardo Aburruzaga
.\" García <gerardo.aburruzaga@uca.es>
.\" Traducción revisada por Miguel Pérez Ibars <mpi79470@alu.um.es> el 14-febrero-2005
.\"
.TH EXIT 3 "17 noviembre 2001" "GNU" "Manual del Programador de Linux"
.SH NOMBRE
exit \- produce la terminación normal del programa
.SH SINOPSIS
.nf
.B #include <stdlib.h>
.sp
.BI "void exit(int " status );
.fi
.SH DESCRIPCIÓN
La función \fBexit\fP produce la terminación normal del programa y la
devolución de \fIstatus & 0377\fP al proceso padre (véase
.BR wait(2)).
Antes, se llama a todas las
funciones registradas con \fBatexit()\fP y \fBon_exit()\fP en orden
inverso a su registro, y todos los flujos abiertos se vuelcan y cierran.
Los ficheros creados por \fItmpfile()\fP son eliminados.
.LP
El estándar C especifica dos constantes \fIEXIT_SUCCESS\fP y \fIEXIT_FAILURE\fP
que pueden ser pasadas a \fBexit()\fP para indicar una terminación con o sin éxito,
respectivamente.
.SH "VALOR DEVUELTO"
La función \fBexit()\fP no devuelve nada ni regresa.
.SH "CONFORME A"
SVID 3, POSIX, BSD 4.3, ISO 9899 (``ANSI C'')
.SH OBSERVACIONES
Durante el procesamiento de exit, es posible registrar funciones
adicionales con \fBatexit()\fP y \fBon_exit()\fP.
Siempre se elimina de la cadena de funciones registradas la
última función registrada, y se invoca.
Queda indefinido lo que pasa si durante este procesamiento
se llama o bien a \fBexit()\fP o bien a \fBlongjmp()\fP.
.LP
El uso de EXIT_SUCCESS y EXIT_FAILURE es ligeramente más portable
(para entornos no Unix) que el de 0 y algún valor distinto de cero como
1 o \-1. En particular, VMS usa una convención diferente.
.LP
BSD ha intentado estandarizar códigos de salida - véase el fichero
.IR <sysexits.h> .
.LP
Después de \fBexit()\fP, el estado de salida debe ser transmitido al
proceso padre. Se presentan tres casos. Si el padre tiene definido
SA_NOCLDWAIT, o bien ha puesto como manejador de SIGCHLD a SIG_IGN, el
estado se desecha. Si el padre estaba esperando al hijo
se le notifica el estado de salida. En ambos casos el proceso que hace la
llamada muere inmediatamente. Si el padre no ha indicado que
no está interesado en el estado de salida, pero no se encuentra esperando,
el proceso que termina se convierte en un proceso "zombie"
(que no es sino un contenedor para el byte único que representa
el estado de salida) por lo que el padre puede enterarse del estado de salida
cuando llame más tarde a una de las funciones \fIwait()\fP.
.LP
Si la implementación soporta la señal SIGCHLD, se envía esta señal
al padre. Si el padre tiene definido SA_NOCLDWAIT,
es indefinido si se envía esta señal SIGCHLD.
.LP
Si el grupo es líder de un grupo de procesos y su terminal de control
es la terminal de control de la sesión, cada proceso que esté en
primer plano dentro del grupo de procesos de esta terminal de control
recibe una señal SIGHUP, y la terminal se desvincula de la sesión, permitiendo
ser adquirida por un nuevo proceso controlador.
.LP
Si la salida del proceso provoca que un grupo de procesos se quede huérfano,
y si cualquier miembro del grupo de procesos que se acaba de quedar huérfano es parado,
se envía una señal SIGHUP seguida de una señal SIGCONT a cada proceso del grupo
de procesos.
.SH "VÉASE TAMBIÉN"
.BR _exit (2),
.BR wait (2),
.BR atexit (3),
.BR on_exit (3),
.BR tmpfile (3)
|