Skip to main content

Espera - Comando Linux - Comando Unix

Comandos Basicos en Gnu/Linux Fedora VI (Junio 2026)

Comandos Basicos en Gnu/Linux Fedora VI (Junio 2026)
Anonim

Nombre

espera, waitpid - espera la terminación del proceso

Sinopsis

#incluir #incluir

pid_t espera (int * estado );pid_t waitpid (pid_t pid , En t * estado , En t opciones );

Descripción

losEspere la función suspende la ejecución del proceso actual hasta que un niño haya salido, o hasta que se entregue una señal cuya acción sea terminar el proceso actual o llamar a una función de manejo de señal. Si un niño ya ha salido al momento de la llamada (un proceso llamado "zombie"), la función regresa de inmediato. Se liberan todos los recursos del sistema utilizados por el niño.

loswaitpid La función suspende la ejecución del proceso actual hasta que un niño, como lo especifica el pid el argumento ha salido, o hasta que se entrega una señal cuya acción es terminar el proceso actual o llamar a una función de manejo de señales. Si un niño lo solicita pid ya ha salido en el momento de la llamada (un proceso llamado "zombie"), la función regresa de inmediato. Se liberan todos los recursos del sistema utilizados por el niño.

El valor de pid puede ser uno de

< -1

lo que significa esperar cualquier proceso secundario cuyo ID de grupo de proceso sea igual al valor absoluto de pid .

-1

lo que significa esperar por cualquier proceso hijo; este es el mismo comportamiento queEspere exposiciones

0

lo que significa esperar cualquier proceso secundario cuyo ID de grupo de proceso sea igual al del proceso de llamada.

> 0

lo que significa esperar al niño cuyo ID de proceso es igual al valor de pid .

El valor de opciones es un OR de cero o más de las siguientes constantes:

WNOHANG

lo que significa volver inmediatamente si ningún niño ha salido.

WUNTRACED

lo que significa volver también para los niños que están detenidos y cuyo estado no se ha informado.

(Para las opciones solo para Linux, vea a continuación).

Si estado no esNULO, Espere owaitpid almacenar información de estado en la ubicación señalada por estado .

Este estado se puede evaluar con las siguientes macros (estas macros toman el búfer de estadísticas (unEn t) como argumento --- no un puntero al búfer!):

WIFEXITED ( estado )

no es cero si el hijo salió normalmente.

ESTÁNDAR estado )

evalúa los ocho bits menos significativos del código de retorno del hijo que terminó, que puede haberse establecido como el argumento de una llamada asalida() o como el argumento para una regreso Declaración en el programa principal. Esta macro solo puede ser evaluada siWIFEXITEDdevuelto no cero.

WIFSIGNALED ( estado )

devuelve true si el proceso hijo se cerró debido a una señal que no se detectó.

WTERMSIG ( estado )

devuelve el número de la señal que provocó la finalización del proceso secundario. Esta macro solo puede ser evaluada siWIFSIGNALED devuelto no cero.

WIFSTOPPED ( estado )

devuelve true si el proceso hijo que causó la devolución está actualmente detenido; esto solo es posible si la llamada fue hecha usandoWUNTRACED.

WSTOPSIG ( estado )

devuelve el número de la señal que hizo que el niño se detuviera. Esta macro solo puede ser evaluada siWIFSTOPPED devuelto no cero.

Algunas versiones de Unix (por ejemplo, Linux, Solaris, pero no AIX, SunOS) también definen una macroWCOREDUMP ( estado ) para probar si el proceso hijo descargado núcleo. Solo use esto incluido en #ifdef WCOREDUMP … #endif.

Valor de retorno

El ID de proceso del hijo que salió, o cero siWNOHANG se utilizó y ningún niño estaba disponible, o -1 en caso de error (en cuyo caso errno se establece en un valor apropiado).

Los errores

ECHILD

si el proceso especificado en pid no existe o no es un hijo del proceso de llamada. (Esto puede suceder para el propio hijo si la acción para SIGCHLD está establecida en SIG_IGN. Consulte también la sección NOTAS DE LINUX sobre temas).

EINVAL

Si el opciones argumento fue inválido

EINTR

SiWNOHANG no se estableció y una señal desbloqueada o unaSIGCHLD fue capturado.