Provided by:
manpages-fr_1.67.0-1_all 
NOM
fork - Créer un processus fils.
SYNOPSIS
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
DESCRIPTION
fork crée un processus fils qui diffère du processus parent uniquement
par ses valeurs PID et PPID et par le fait que toutes les statistiques
d’utilisation des ressources sont remises à zéro. Les verrouillages de
fichiers, et les signaux en attente ne sont pas hérités.
Sous Linux, fork est implementé en utilisant une méthode de copie à
l’écriture. Ceci consiste à ne faire la véritable duplication d’une
page mémoire que lorsqu’un processus en modifie une instance. Tant
qu’aucun des deux processus n’écrit dans une page donnée, celle-ci
n’est pas vraiment dupliquée. Ainsi les seules pénalisations induites
par fork sont le temps et la mémoire nécessaires à la copie de la table
des pages du parent ainsi que la création d’une structure de tâche pour
le fils.
VALEUR RENVOYÉE
En cas de succès, le PID du fils est renvoyé au processus parent, et 0
est renvoyé au processus fils. En cas d’échec -1 est renvoyé dans le
contexte du parent, aucun processus fils n’est créé, et errno contient
le code d’erreur.
ERREURS
EAGAIN fork ne peut pas allouer assez de mémoire pour copier la table
des pages du père et une structure de tâche pour le fils.
ENOMEM fork a échoué car le noyau n’a plus assez de mémoire.
EXEMPLE
pid_t pid;
pid = fork ();
if (pid > 0) {
/* Processus père */
} else if (pid == 0) {
/* Processus fils */
} else {
/* Traitement d’erreur */
}
CONFORMITÉ
L’appel-système fork est conforme à SVr4, SVID, POSIX, X/OPEN, BSD 4.3.
VOIR AUSSI
clone(2), execve(2), vfork(2), wait(2).
TRADUCTION
Christophe Blaess, 1996-2003.