linux-kernel
Chiamata del sistema forcella
Ricerca…
chiamata di sistema fork ()
fork()
è una chiamata di sistema. fork viene utilizzato per creare un processo figlio dal processo in esecuzione, che è una replica del processo padre (processo che ha eseguito fork()
). Il processo figlio è derivato dal processo genitore. Sia il genitore che il bambino hanno uno spazio di indirizzamento diverso, ciascuno è indipendente dalle modifiche apportate alle variabili.
Il processo figlio ha il suo PID (identificazione del processo). Il PPID (Parent Process ID) del processo figlio è lo stesso del PID del processo padre.
Formato:
File di intestazione:
#include <unistd.h>
Dichiarazione di funzioni:pid_t fork(void);
fork () non ha bisogno di argomenti di input.
Al termine della creazione del processo figlio, il pid del processo figlio viene restituito al processo padre e 0 viene restituito nel processo figlio. On Failure return -1
senza processo creato.
Esempio di utilizzo:
#include <stdio.h>
#include <unistd.h>
void child_process();
void parent_process();
int main()
{
pid_t pid;
pid=fork();
if(pid==0)
child_process();
else
parent_process();
return 0;
}
/*getpid() will return the Pid of the
current process executing the function */
void child_process()
{
printf("Child process with PID : %d and PPID : %d ", getpid(),getppid());
}
void parent_process()
{
printf("Parent process with PID : %d", getpid());
}
La sequenza delle istruzioni printf
da parte del figlio e del genitore dipende dal meccanismo di pianificazione che dipende esclusivamente dal sistema.