2010-09-08 4 views

Répondre

8

Il est généralement utilisé pour attendre qu'un processus spécifique se termine (ou change d'état si vous utilisez des indicateurs spéciaux), en fonction de son ID de processus (également appelé pid).

Il peut également être utilisé pour attendre un groupe de processus enfants, qu'il s'agisse d'un groupe de processus spécifique ou d'un enfant du processus en cours.

Voir here pour les détails sanglants.

5

Il bloque le processus d'appel jusqu'à ce qu'un processus se termine d'enfant désigné (ou fait une autre transition, comme étant arrêté.)

En général, vous utiliserez waitpid plutôt que wait générique quand vous pouvez avoir plus d'un processus et seulement se soucient d'un.

Une utilisation typique est

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 
    } 
}