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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow