Bash-Linux.com : Le SHELL pour les nuls

  Actuellement 46 lignes de commande disponibles
login as: root
root@213.186.33.18's password:
Last login: Fri Mar 12 17:37:51 2010 from 38.107.191.118
[root@bash-linux ~] # echo "Bienvenue sur Bash-Linux.com"_
 Manuel des commandes UNIX (man) Version française

Indiquez la fonction :

Man Fork en français

FORK(2) Manuel du programmeur Linux FORK(2)
 
NOM


fork - Creer un processus fils.
 
SYNOPSIS


#include #include pid_t fork(void);
 
DESCRIPTION


fork() cree un nouveau processus en dupliquant le processus appelant. Le nouveau processus, que l'on nomme processus fils, est l'exacte duplication du processus appelant, nomme processus parent, excepte pour les points suivants : * Le fils a son propre identifiant de processus (PID). Ce PID est unique et ne correspond a aucun autre identifiant de groupe de pro- cessus existant (setpgid(2)). * Le PPID (Parent Process ID) du fils est identique au PID du parent. * Le fils n'herite pas des verrouillages memoire de son parent (mlock(2), mlockall(2)). * Les statistiques d'utilisation des ressources de processus (getrusage(2)) et les compteurs de temps CPU (times(2)) sont reini- tialises dans le fils. * L'ensemble des signaux en attente pour le fils est initialement vide (sigpending(2)). * Le fils n'herite pas des ajustements de semaphore de son parent (semop(2)). * Le fils n'herite pas des verrouillages d'enregistrement de son par- ent (fcntl(2)). * Le fils n'herite pas des temporisateurs de son parent (setitimer(2) alarm(3), timer_create(3)). * Le fils n'herite pas des operations d'E/S asynchrones en cours de son parent (aio_read(3), aio_write(3)). Les attributs de processus de la liste precedente sont tous specifies dans POSIX.1-2001. Le parent et le fils different egalement par les attributs de processus suivant, specifiques a Linux : * Le fils n'herite pas des notifications de changement de repertoire (dnotify) de son parent (voir la description de F_NOTIFY dans fcntl(2)). * L'attribut PR_SET_PDEATHSIG de prctl(2) est reinitialise de sorte que le fils ne recoive pas de signal lorsque son parent se termine. * Le signal de terminaiston du fils est toujours SIGCHLD (voir clone(2)). Veuillez egalement noter les points suivants : * Le processus fils est cree avec un simple thread -- celui qui a appele fork(2). L'espace entier d'adresses virtuelles du parent est replique dans le fils. Cela inclut les etats des mutexes, les variables de condition et autres objects pthreads ; l'utilisation de pthread_atfork(3) peut etre preferable afin de gerer les prob- lemes qui pourraient etre provoques. * Le fils herite d'une copie de l'ensemble des descripteurs de fichiers ouverts du parent. Chaque descripteur de fichier du fils fait reference a la meme description de fichier ouvert (voir open(2)) que le descripteur de fichier correspondant du parent. Cela signifie que les deux descripteurs partagent les attributs d'etat de fichier ouvert, la position de la tete de lecture et les attributs d'E/S pilotees par signaux (voir la description de F_SETOWN et F_SETSIG dans fcntl(2)). * Le fils herite d'une copie de l'ensemble des descripteurs de files de messages ouverts (voir mq_overview(7)). Chaque descripteur dans le fils fait reference a la meme description de file de messages ouverte que le descripteur de file de message ouvert dans le par- ent. Cela signifie que les deux descripteurs partagent les meme drapeaux (mq_flags).
 
VALEUR RENVOYEE


En cas de succes, le PID du fils est renvoye au processus parent, et 0 est renvoye au processus fils. En cas d'echec -1 est renvoye dans le contexte du parent, aucun processus fils n'est cree, et errno contient le code d'erreur.
 
ERREURS


EAGAIN fork() ne peut pas allouer assez de memoire pour copier la table des pages du pere et une structure de tche pour le fils. EAGAIN Il n'a pas ete possible de creer un nouveau processus car la limite ressource RLIMIT_NPROC de l'appelant a ete rencontree. Pour franchir cette limite, le processus doit avoir au moins l'une des deux capacites CAP_SYS_ADMIN ou CAP_SYS_RESOURCE. ENOMEM fork() a echoue car le noyau n'a plus assez de memoire.
 
EXEMPLE


Voir pipe(2) et wait(2).
 
NOTES


Sous Linux, fork() est implemente en utilisant une methode de copie a l'ecriture. Ceci consiste a ne faire la veritable duplication d'une page memoire que lorsqu'un processus en modifie une instance. Tant qu'aucun des deux processus n'ecrit dans une page donnee, celle-ci n'est pas vraiment dupliquee. Ainsi les seules penalisations induites par fork sont le temps et la memoire necessaires a la copie de la table des pages du parent ainsi que la creation d'une structure de tche pour le fils.
 
CONFORMITE


SVr4, BSD 4.3, POSIX.1-2001.
 
VOIR AUSSI


clone(2), execve(2), vfork(2), setrlimit(2), unshare(2), wait(2), capa- bilities(7)
 
TRADUCTION


Ce document est une traduction realisee par Christophe Blaess le 9 octobre 1996 et revisee le 19 juin 2007. L'equipe de traduction a fait le maximum pour realiser une adaptation francaise de qualite. La version anglaise la plus a jour de ce document est toujours consultable via la commande : LANG=C man 2 fork . N'hesitez pas a signaler a l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel. Linux 2.6.17 4 septembre 2006 FORK(2)


 Dernières recherches
Man  en anglais Man fork en anglaisMan  en français Man fork en français
Man  en anglais Man useradd en anglaisMan  en français Man useradd en français
Man  en anglais Man tar en anglaisMan  en français Man tar en français
Man  en anglais Man stat en anglaisMan  en français Man stat en français
Man  en anglais Man clone en anglaisMan  en français Man clone en français
Man  en anglais Man cat en anglaisMan  en français Man cat en français
Man  en anglais Man calloc en anglaisMan  en français Man calloc en français
Man  en anglais Man umask en anglaisMan  en français Man umask en français
Man  en anglais Man tty en anglaisMan  en français Man tty en français
Man  en anglais Man ls en anglaisMan  en français Man ls en français
Man  en anglais Man seteuid en anglaisMan  en français Man seteuid en français
Man  en anglais Man open en anglaisMan  en français Man open en français
Man  en anglais Man free en anglaisMan  en français Man free en français
Man  en anglais Man nanosleep en anglaisMan  en français Man nanosleep en français
Man  en anglais Man forkpty en anglaisMan  en français Man forkpty en français

 Recherche

Dans ce moteur de recherche, vous pouvez taper directement votre besoin, en une phrase normale, humaine.
Exemple : vous cherchez comment remplacer un mot par un autre dans tous les fichiers d'un certain dossier. Vous pouvez écrire "Comment remplacer un mot par un autre dans tous les fichiers d'un dossier". Le moteur vous ramenera les résultats en fonction de leur pertinence.
Vous pouvez bien sûr ne chercher qu'un seul mot-clé, par exemple "find".
 Toutes les lignes de code
Par popularité
Par fonction
Recherche avancée
 Les logiciels SHELL/SSH
Putty
Astuces Bash
Faire du SHELL avec PHP!
 La doc officielle
Les man Linux en français
Les man Linux en anglais
 Proposer vos bash
Partagez vos lignes!
 Les requêtes
Déposer une requête
Voir/répondre à une requête
 Quelques sites interessants
Bons sites pour apprendre
 Rechercher