a.Grupuri de proces
^grp=setpgrp();
unde grp este noul numгr al grupului de procese.
Un fiu reюine numгrul de grup de proces al pгrintelui оn timpul apelului sistem fork.
Setpgrp are, de asemenea, importanюг оn setarea terminalului de control al unui proces.
#include <signal.h>
^main()
{
^register int i;
^setpgrp();
^for(i=0;i<10;i++)
{
^if(fork()==0)
{
/* procesul fiu */
^if(i[and]1)
^setpgrp();
^printf("pid=[procent]d pgrp=[procent]d pgrp=[procent]d
", getpid(), getpgrp());
^pause();/*se suspendă execuţa apelului sistem */
}
}
^kill(0,SIGINT);
}
În programul de mai sus, procesul anulează numărul său de grup şi crează 10 procese fii. Când sunt creaţi, fiecare proces fiu are acelaşi număr de grup cu al procesului părinte, dar procesele create în timpul iteraţiilor impare din ciclu resetează numărul de grup. Apelurile sistem getpid şi getpgrp întorc PID-ul şi ID-ul grupului (GID) ale procesului care se execută, iar apelului sistem pause suspendă execuţia procesului până când acesta recepţionează un semnal. La sfârşit, procesul părinte execută apelului sistem kill şi trimite un semnal de întrerupere tuturor proceselor din grupul său de procese. Nucleul trimite semnalul către 5 procese "pare" care nu şi-au schimbat propriu grup de procese în timp ce, cele 5 procese "impare" continuă ciclul.