Опис. Функція waitpid() призупиняє виконання потоку, що викликає, доки не стане доступною інформація про стан одного з припинених дочірніх процесів або до доставки сигналу, дія якого полягає у завершенні процесу або виконанні обробника сигналу.
Визначає дочірні процеси, на які абонент хоче чекати: Якщо pid більше 0, waitpid() очікує завершення конкретного дочірнього процесу, ідентифікатор процесу якого дорівнює pid. Якщо pid дорівнює нулю, waitpid() очікує завершення будь-якого дочірнього процесу, ідентифікатор групи процесу якого дорівнює ідентифікатору викликаючого.
Точніше, waitpid() призупиняє процес виклику, доки система не отримає інформацію про стан дитини. Якщо система вже має інформацію про стан відповідного дочірнього елемента під час виклику waitpid(), waitpid() повертає негайно.
Його можна змінити, змінивши певні параметри, тоді як wait() призупиняє виконання викликаного потоку, доки один із його дочірніх елементів не завершиться. waitpid використовується в сценаріях, коли нам потрібно дочекатися завершення певного PID разом з певними іншими опціями, такими як деякі прапорці, такі як WNOHANG і прапор опцій.
Функція getpid(). повертає ідентифікатор процесу, що викликає. Функція getpgrp() повертає ідентифікатор групи процесів викликаного процесу. Функція getppid() повертає ідентифікатор батьківського процесу викликаючого процесу.
В основному у вас є 3 параметри: pid_t waitpid(pid_t pid, int *status, int options); pid — це процес, на який ви чекаєте. Якщо ви не чекаєте кількох дочірніх процесів (у цьому випадку вкажіть 0, -1 або число менше за -1 – деталі на сторінці довідки), вкажіть pid вашого процесу тут.