Provided by: manpages-es_1.55-3_all bug

NOMBRE

       exit - produce la terminación normal del programa

SINOPSIS

       #include <stdlib.h>

       void exit(int status);

DESCRIPCIÓN

       La  función  exit  produce  la  terminación  normal  del  programa y la
       devolución de status & 0377 al proceso padre (véase  wait(2)).   Antes,
       se  llama a todas las funciones registradas con atexit() y on_exit() en
       orden inverso a su registro, y todos los flujos abiertos se  vuelcan  y
       cierran.  Los ficheros creados por tmpfile() son eliminados.

       El estándar C especifica dos constantes EXIT_SUCCESS y EXIT_FAILURE que
       pueden ser pasadas a exit() para indicar  una  terminación  con  o  sin
       éxito, respectivamente.

VALOR DEVUELTO

       La función exit() no devuelve nada ni regresa.

CONFORME A

       SVID 3, POSIX, BSD 4.3, ISO 9899 (‘‘ANSI C’’)

OBSERVACIONES

       Durante  el  procesamiento  de  exit,  es  posible  registrar funciones
       adicionales con atexit() y on_exit().  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 exit() o bien a longjmp().

       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.

       BSD  ha  intentado  estandarizar  códigos  de salida - véase el fichero
       <sysexits.h>.

       Después de exit(), 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 wait().

       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.

       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.

       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.

VÉASE TAMBIÉN

       _exit(2), wait(2), atexit(3), on_exit(3), tmpfile(3)