Cómo lidiar con el bloqueo de funciones del sistema
Cuando un proceso principal llama a wait o waitpid, puede: Bloquearse (si todos los procesos secundarios aún se están ejecutando). Devuelve la información de terminación del proceso inmediatamente (si el proceso hijo ha terminado y está esperando que el proceso principal lea su información de terminación). Se devuelve un error inmediatamente (si no tiene ningún proceso hijo).
La diferencia entre las funciones wait y waitpid es: si todos los procesos secundarios del proceso padre aún se están ejecutando, llamar a wait hará que el proceso padre se bloquee, mientras que llamar a waitpid con el parámetro de opción WNOHANG provocará que el proceso padre se bloquee. proceso padre para devolver 0. sin bloquear. wait espera el primer proceso hijo terminado, mientras que waitpid puede devolver 0 mientras se ejecuta el primer proceso hijo terminado y espera el primer proceso hijo terminado.