2010-09-08 14 views

cevap

8

Genel olarak, işlem kimliğine (aksi halde pid olarak bilinir) dayalı olarak belirli bir işlemin bitmesini (veya özel bayraklar kullanıyorsanız durum değiştirir) beklemek genellikle kullanılır. Bir grup çocuk işleminin, belirli bir işlem grubundan veya mevcut işlemin herhangi bir alt öğesinden herhangi birini beklemek için de kullanılabilir.

Gory ayrıntıları için here'a bakın.

5

Bu bloklar birden fazla sürece sahip ve sadece duruma geldiğinde oldukça jenerik wait daha waitpid kullanacağı bir aday çocuk süreç sonlandığında kadar (veya durdurulmasını gibi diğer bazı geçiş yapar.) Tipik

çağıran süreç Birine dikkat et.

Tipik bir kullanım

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 
    } 
} 
olduğu