FORK
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
EXEMPLE
CONFORMITÉ
VOIR AUSSI
TRADUCTION
NOM
fork - Créer un processus fils.
SYNOPSIS
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
TRADUCTION
Christophe Blaess, 1996-2003.
|