Durante la sua esecuzione un processo può creare altri processi
Il processo creante è chiamato padre, mentre il processo creato è chiamato figlio
La gerarchia che esiste in questa struttura è ricorsiva, per cui un processo figlio può essere, a sua volta, padre di altri processi
Risorse:
Esecuzione:
Spazio di indirizzi:
UNIX:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main (int argc, char *argv[])
{
pid_t pid;
pid = fork(); //genera un nuovo processo
if (pid < 0)
{
//errore
fprintf(stderr, "errore nella creazione del processo");
exit(-1);
}
else if (pid == 0)
{
//processo figlio
execlp("/bin/ls", "ls", NUll);
}
else
{
//processo genitore
wait(NULL);
printf("Il processo figlio ha terminato");
exit(0);
}
}