Bash-Linux.com : Le SHELL pour les nuls

  Actuellement 50 lignes de commande et 1472 man disponibles
login as: root
root@213.186.33.18's password:
Last login: Thu Feb 9 4:50:06 2012 from 38.107.179.229
[root@bash-linux ~] # echo "Bienvenue sur Bash-Linux.com"_
 Manuel des commandes UNIX (man) Version anglaise

Indiquez la fonction :

Man Fork en anglais

FORK(2) Linux Programmer's Manual FORK(2)
 
NAME


fork - create a child process
 
SYNOPSIS


#include pid_t fork(void);
 
DESCRIPTION


fork() creates a new process by duplicating the calling process. The new process, referred to as the child, is an exact duplicate of the calling process, referred to as the parent, except for the following points: * The child has its own unique process ID, and this PID does not match the ID of any existing process group (setpgid(2)). * The child's parent process ID is the same as the parent's process ID. * The child does not inherit its parent's memory locks (mlock(2), mlockall(2)). * Process resource utilizations (getrusage(2)) and CPU time counters (times(2)) are reset to zero in the child. * The child's set of pending signals is initially empty (sigpend- ing(2)). * The child does not inherit semaphore adjustments from its parent (semop(2)). * The child does not inherit record locks from its parent (fcntl(2)). * The child does not inherit timers from its parent (setitimer(2), alarm(2), timer_create(3)). * The child does not inherit outstanding asynchronous I/O operations from its parent (aio_read(3), aio_write(3)). The process attributes in the preceding list are all specified in POSIX.1-2001. The parent and child also differ with respect to the following Linux-specific process attributes: * The child does not inherit directory change notifications (dnotify) from its parent (see the description of F_NOTIFY in fcntl(2)). * The prctl(2) PR_SET_PDEATHSIG setting is reset so that the child does not receive a signal when its parent terminates. * Memory mappings that have been marked with the madvise(2) MADV_DONT- FORK flag are not inherited across a fork(). * The termination signal of the child is always SIGCHLD (see clone(2)). Note the following further points: * The child process is created with a single thread -- the one that called fork(). The entire virtual address space of the parent is replicated in the child, including the states of mutexes, condition variables, and other pthreads objects; the use of pthread_atfork(3) may be helpful for dealing with problems that this can cause. * The child inherits copies of the parent's set of open file descrip- tors. Each file descriptor in the child refers to the same open file description (see open(2)) as the corresponding file descriptor in the parent. This means that the two descriptors share open file status flags, current file offset, and signal-driven I/O attributes (see the description of F_SETOWN and F_SETSIG in fcntl(2)). * The child inherits copies of the parent's set of open message queue descriptors (see mq_overview(7)). Each descriptor in the child refers to the same open message queue description as the correspond- ing descriptor in the parent. This means that the two descriptors share the same flags (mq_flags). * The child inherits copies of the parent's set of open directory streams (see opendir(3)). POSIX.1-2001 says that the corresponding directory streams in the parent and child may share the directory stream positioning; on Linux/glibc they do not.
 
RETURN VALUE


On success, the PID of the child process is returned in the parent, and 0 is returned in the child. On failure, -1 is returned in the parent, no child process is created, and errno is set appropriately.
 
ERRORS


EAGAIN fork() cannot allocate sufficient memory to copy the parent's page tables and allocate a task structure for the child. EAGAIN It was not possible to create a new process because the caller's RLIMIT_NPROC resource limit was encountered. To exceed this limit, the process must have either the CAP_SYS_ADMIN or the CAP_SYS_RESOURCE capability. ENOMEM fork() failed to allocate the necessary kernel structures because memory is tight.
 
CONFORMING TO


SVr4, 4.3BSD, POSIX.1-2001.
 
NOTES


Under Linux, fork() is implemented using copy-on-write pages, so the only penalty that it incurs is the time and memory required to dupli- cate the parent's page tables, and to create a unique task structure for the child. Since version 2.3.3, rather than invoking the kernel's fork() system call, the glibc fork() wrapper that is provided as part of the NPTL threading implementation invokes clone(2) with flags that provide the same effect as the traditional system call. The glibc wrapper invokes any fork handlers that have been established using pthread_atfork(3).
 
EXAMPLE


See pipe(2) and wait(2).
 
SEE ALSO


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


This page is part of release 3.05 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. Linux 2008-04-22 FORK(2)


 Dernières recherches
Man  en anglais Man fork en anglaisMan  en français Man fork en français
Man  en anglais Man grep en anglaisMan  en français Man grep en français
Man  en anglais Man dh_lintian en anglaisMan  en français Man dh_lintian en français
Man  en anglais Man dh_python en anglaisMan  en français Man dh_python en français
Man  en anglais Man dh_install en anglaisMan  en français Man dh_install en français
Man  en anglais Man proc en anglaisMan  en français Man proc en français
Man  en anglais Man pcre en anglaisMan  en français Man pcre en français
Man  en anglais Man dh_testdir en anglaisMan  en français Man dh_testdir en français
Man  en anglais Man fpurge en anglaisMan  en français Man fpurge en français
Man  en anglais Man signal en anglaisMan  en français Man signal en français
Man  en anglais Man adjtime en anglaisMan  en français Man adjtime en français
Man  en anglais Man wcsnlen en anglaisMan  en français Man wcsnlen en français
Man  en anglais Man dh_desktop en anglaisMan  en français Man dh_desktop en français
Man  en anglais Man man en anglaisMan  en français Man man en français
Man  en anglais Man pthreads en anglaisMan  en français Man pthreads 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