Recherche…


appel système fork ()

fork() est un appel système. fork est utilisé pour créer un processus enfant à partir du processus en cours d'exécution, qui est une réplique du processus parent (Processus qui a exécuté fork() ). Le processus enfant est dérivé du processus parent. Le parent et l'enfant ont des espaces d'adressage différents, chacun étant indépendant des modifications apportées aux variables.

Le processus enfant a son propre PID (identification de processus). PPID (ID de processus parent) du processus enfant est identique à celui du processus parent.

Format:

Fichier d'en-tête: #include <unistd.h>
Déclaration de fonction: pid_t fork(void);

fork () n'a pas besoin d'arguments en entrée.

En cas de création réussie du processus enfant, le pid du processus enfant est renvoyé au processus parent et 0 est renvoyé dans le processus enfant. En cas d'échec, renvoyer -1 sans processus créé.

Exemple d'utilisation:

#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 séquence des instructions printf de l'enfant et du parent dépend du mécanisme de planification qui dépend uniquement du système.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow