2010-09-08 22 views

Respuesta

8

En general, se utiliza para esperar hasta que finalice un proceso específico (o cambie el estado si está utilizando indicadores especiales), en función de su ID de proceso (también conocido como pid).

También se puede utilizar para esperar a cualquiera de un grupo de procesos secundarios, ya sea uno de un grupo de proceso específico o cualquier elemento secundario del proceso actual.

Ver here para los detalles sangrientos.

5

Bloquea el proceso llamando hasta que salga un proceso hijo nominado (o hace alguna otra transición, tal como está detenido.)

lo general va a utilizar waitpid en lugar de genéricos wait cuando puede tener más de un proceso y sólo se preocupan por uno.

Un uso típico es

pid_t child_pid; 
int status; 

child_pid = fork(); 

if (child_pid == 0) { 
    // in child; do stuff including perhaps exec 
} else if (child_pid == -1) { 
    // failed to fork 
} else { 
    if (waitpid(child_pid, &status, 0) == child_pid) { 
      // child exited or interrupted; now you can do something with status 
    } else { 
      // error etc 
    } 
}