perkamon - en to fr translation catalogue (1530 entries)

note: type: TH
en: 2007-12-19
fr: 19 décembre 2007

note: type: TH
en: Linux Programmer's Manual
fr: Manuel du programmeur Linux

note: type: SH
en: NAME
fr: NOM

note: type: Plain text
en: _syscall - invoking a system call without library support (OBSOLETE)
fr: _syscall - Invoquer un appel système sans prise en charge par la bibliothèque (OBSOLÈTE)

note: type: Plain text
en: A _syscall macro
fr: Une macro _syscall

note: type: Plain text
en: desired system call
fr: L'appel système désiré

note: type: Plain text
en: The important thing to know about a system call is its prototype.  You need to know how many arguments, their types, and the function return type.  There are seven macros that make the actual call into the system easier.  They have the form:
fr: La chose importante à savoir sur un appel système est son prototype. Vous devez savoir combien d'arguments il prend, leurs types et le type retour de la fonction. Il y a sept macros qui facilitent les appels du système. Elles ont la forme :

note: type: Plain text
en: where
fr: où

note: type: Plain text
en: I<X> is 0\(en6, which are the number of arguments taken by the system call
fr: I<X> est 0\(en6, qui est le nombre d'argument pris par l'appel système

note: type: Plain text
en: I<type> is the return type of the system call
fr: I<type> est le type de retour de l'appel système

note: type: Plain text
en: I<name> is the name of the system call
fr: I<name> est le nom de l'appel système

note: type: Plain text
en: I<typeN> is the Nth argument's type
fr: I<typeN> est le type du Nième paramètre

note: type: Plain text
en: I<argN> is the name of the Nth argument
fr: I<argN> est le nom du Nième paramètre

note: type: Plain text
en: These macros create a function called I<name> with the arguments you specify.  Once you include the _syscall() in your source file, you call the system call by I<name>.
fr: Ces macros créent une fonction appelée I<name> avec les arguments indiqués. Une fois que vous avez inclus votre _syscall() dans votre fichier source, vous pouvez appeler l'appel système par I<name>.

note: type: SH
en: FILES
fr: FICHIERS

note: type: SH
en: CONFORMING TO
fr: CONFORMITÉ

note: type: Plain text
en: The use of these macros is Linux-specific, and deprecated.
fr: L'utilisation de ces macros est spécifique à Linux et est déconseillée.

note: type: Plain text
en: Starting around kernel 2.6.18, the _syscall macros were removed from header files supplied to user space.  Use B<syscall>(2)  instead.  (Some architectures, notably ia64, never provided the _syscall macros; on those architectures, B<syscall>(2)  was always required.)
fr: À partir du noyau 2.6.18 environ, les macros _syscall ont été supprimées des fichiers d'en-têtes fournis à l'espace utilisateur. Utilisez B<syscall>(2) à la place. (Certaines architectures, particulièrement ia64, n'ont jamais fourni les macros _syscall ; sur ces architectures, B<syscall>(2) était toujours nécessaire.)

note: type: Plain text
en: The _syscall() macros I<do not> produce a prototype.  You may have to create one, especially for C++ users.
fr: Les macros _syscall() I<ne fournissent pas> de prototype. Vous devez en créer un, particulièrement les utilisateurs de C++.

note: type: Plain text
en: System calls are not required to return only positive or negative error codes.  You need to read the source to be sure how it will return errors.  Usually, it is the negative of a standard error code, for example, -I<EPERM>.  The _syscall() macros will return the result I<r> of the system call when I<r> is nonnegative, but will return -1 and set the variable I<errno> to -I<r> when I<r> is negative.  For the error codes, see B<errno>(3).
fr: Il n'est pas obligatoire que les appels système retournent un code d'erreur seulement positif ou négatif. Vous devez lire les sources pour savoir comment les erreurs sont retournées. Généralement, il s'agit de la valeur opposée d'un code d'erreur standard, par exemple, -I<EPERM>. Les macros _syscall() retourneront le résultat I<r> de l'appel système lorsque I<r> n'est pas négatif, mais retournera -1 et écrira la variable I<errno> avec -I<r> lorsque I<r> est négatif. Pour ces codes d'erreurs, consultez B<errno>(3).

note: The preferred way to invoke system calls that glibc does not know about yet is via .BR syscall (2). However, this mechanism can be used only if using a libc (such as glibc) that supports .BR syscall (2), and if the .I <sys/syscall.h> header file contains the required SYS_foo definition. Otherwise, t
en: When defining a system call, the argument types I<must> be passed by-value or by-pointer (for aggregates like structs).
fr: Lors de la définition d'un appel système, les types d'arguments I<doivent> être passés par valeur ou par pointeur (pour les types aggrégés comme les structures).

note: type: SH
en: EXAMPLE
fr: EXEMPLE

note: type: Plain text
en: #include E<lt>stdio.hE<gt>
    #include E<lt>stdlib.hE<gt>
    #include E<lt>errno.hE<gt>
    #include E<lt>linux/unistd.hE<gt>       /* for _syscallX macros/related stuff */
    #include E<lt>linux/kernel.hE<gt>       /* for struct sysinfo */
fr: #include E<lt>stdio.hE<gt>
    #include E<lt>stdlib.hE<gt>
    #include E<lt>errno.hE<gt>
    #include E<lt>linux/unistd.hE<gt>       /* pour les _syscallX et autres */
    #include E<lt>linux/kernel.hE<gt>       /* pour struct sysinfo */

note: type: Plain text
en: /* Note: if you copy directly from the nroff source, remember to
    REMOVE the extra backslashes in the printf statement. */
fr: /* Note : si vous copiez directement à partir du fichier source
    nroff de la page, n'oubliez pas de SUPPRIMER les contre obliques
    supplémentaires dans l'instruction printf. */

note: type: SS
en: Sample output
fr: Échantillon de sortie

note: type: SH
en: SEE ALSO
fr: VOIR AUSSI

note: type: Plain text
en: This page is part of release 3.65 of the Linux I<man-pages> project.  A description of the project, and information about reporting bugs, can be found at \%http://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 3.65 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse \%http://www.kernel.org/doc/man-pages/.

note: type: TH
en: 2014-02-21
fr: 21 février 2014

note: type: Plain text
en: access, faccessat - check user's permissions for a file
fr: access, faccessat - Vérifier les permissions utilisateur d'un fichier

note: type: Plain text
en: B<#include E<lt>fcntl.hE<gt>           >/* Definition of AT_* constants */
    B<#include E<lt>unistd.hE<gt>>
fr: B<#include E<lt>fcntl.hE<gt> /* Définition des constantes AT_* */>
    B<#include E<lt>unistd.hE<gt>>

note: type: Plain text
en: Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):
fr: Exigences de macros de test de fonctionnalités pour la glibc (consultez B<feature_test_macros>(7)) :

note: type: Plain text
en: B<faccessat>():
fr: B<faccessat>()\ :

note: type: TP
en: Since glibc 2.10:
fr: Depuis la glibc 2.10 :

note: type: TP
en: Before glibc 2.10:
fr: Avant la glibc 2.10 :

note: type: Plain text
en: B<access>()  checks whether the calling process can access the file I<pathname>.  If I<pathname> is a symbolic link, it is dereferenced.
fr: B<access>() vérifie si le processus appelant peut accéder au fichier I<pathname>. Si I<pathname> est un lien symbolique, il est déréférencé.

note: F_OK is defined as 0 on every system that I know of. type: Plain text
en: The I<mode> specifies the accessibility check(s) to be performed, and is either the value B<F_OK>, or a mask consisting of the bitwise OR of one or more of B<R_OK>, B<W_OK>, and B<X_OK>.  B<F_OK> tests for the existence of the file.  B<R_OK>, B<W_OK>, and B<X_OK> test whether the file exists and grants read, write, and execute permissions, respectively.
fr: Le I<mode> indique les vérifications d'accès à effectuer. Il prend la valeur B<F_OK> ou un masque contenant un OU binaire d'une des valeurs B<R_OK>, B<W_OK> et B<X_OK>. B<F_OK> teste l'existence du fichier. B<R_OK>, B<W_OK> et B<X_OK> testent si le fichier existe et autorise respectivement la lecture, l'écriture et l'exécution.

note: type: Plain text
en: The check is done using the calling process's I<real> UID and GID, rather than the effective IDs as is done when actually attempting an operation (e.g., B<open>(2))  on the file.  This allows set-user-ID programs to easily determine the invoking user's authority.
fr: Le test est effectué avec les UID et GID I<réels> du processus appelant, plutôt qu'avec les IDs effectifs qui sont utilisés lorsque l'on tente une opération (comme B<open>(2)) sur le fichier. Ceci permet aux programmes Set-UID de déterminer les autorisations de l'utilisateur ayant invoqué le programme.

note: type: Plain text
en: If the calling process is privileged (i.e., its real UID is zero), then an B<X_OK> check is successful for a regular file if execute permission is enabled for any of the file owner, group, or other.
fr: Si le processus appelant est privilégié (c'est-à-dire son UID réel est zéro), alors une vérification B<X_OK> réussit pour un fichier régulier si l'exécution est permise pour l'utilisateur propriétaire, le groupe ou pour les autres.

note: type: Plain text
en: The B<faccessat>()  system call operates in exactly the same way as B<access>(), except for the differences described here.
fr: L'appel système B<faccessat>() opère de la même manière que B<access>(), excepté les différences décrites ici.

note: type: Plain text
en: If the pathname given in I<pathname> is relative, then it is interpreted relative to the directory referred to by the file descriptor I<dirfd> (rather than relative to the current working directory of the calling process, as is done by B<access>()  for a relative pathname).
fr: Si le nom de chemin fourni dans I<pathname> est relatif, il est interprété relativement au répertoire référencé par le descripteur de fichier I<dirfd> (plutôt que relativement au répertoire de travail courant du processus appelant, comme cela est fait par B<access>() pour un chemin relatif).

note: type: Plain text
en: If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, then I<pathname> is interpreted relative to the current working directory of the calling process (like B<access>()).
fr: Si I<pathname> est relatif et que I<dirfd> est la valeur spéciale B<AT_FDCWD>, I<pathname> est interprété relativement au répertoire de travail courant du processus appelant (comme avec B<access>()).

note: type: Plain text
en: If I<pathname> is absolute, then I<dirfd> is ignored.
fr: Si I<pathname> est un chemin absolu, I<dirfd> est ignoré.

note: type: Plain text
en: I<flags> is constructed by ORing together zero or more of the following values:
fr: I<flags> est construit en réalisant un OU logique entre zéro ou plusieurs des valeurs suivantes\ :

note: type: Plain text
en: Perform access checks using the effective user and group IDs.  By default, B<faccessat>()  uses the real IDs (like B<access>()).
fr: Réaliser les vérifications d'accès en utilisant les UID et GID effectifs. Par défaut, B<faccessat>() utilise les ID réels (comme B<access>()).

note: type: Plain text
en: If I<pathname> is a symbolic link, do not dereference it: instead return information about the link itself.
fr: Si I<pathname> est un lien symbolique, ne pas le déréférencer, mais renvoyer des informations sur le lien lui-même.

note: type: Plain text
en: See B<openat>(2)  for an explanation of the need for B<faccessat>().
fr: Consultez B<openat>(2) pour une explication sur la nécessité de B<faccessat>().

note: type: SH
en: RETURN VALUE
fr: VALEUR RENVOYÉE

note: type: Plain text
en: On success (all requested permissions granted, or I<mode> is B<F_OK> and the file exists), zero is returned.  On error (at least one bit in I<mode> asked for a permission that is denied, or I<mode> is B<F_OK> and the file does not exist, or some other error occurred), -1 is returned, and I<errno> is set appropriately.
fr: En cas de succès (toutes les permissions demandées sont autorisées, ou I<mode> vaut B<F_OK> et le fichier existe), 0 est renvoyé. En cas d'erreur (au moins une permission de I<mode> est interdite, ou I<mode> vaut B<F_OK> et le fichier n'existe pas, ou d'autres erreurs se sont produites), -1 est renvoyé et I<errno> contient le code d'erreur.

note: type: SH
en: ERRORS
fr: ERREURS

note: type: Plain text
en: B<access>()  and B<faccessat>()  shall fail if:
fr: B<access>() et B<faccessat>() doivent échouer si\ :

note: type: Plain text
en: The requested access would be denied to the file, or search permission is denied for one of the directories in the path prefix of I<pathname>.  (See also B<path_resolution>(7).)
fr: L'accès serait refusé au fichier lui\(hymême, ou il n'est pas permis de parcourir l'un des répertoires du préfixe du chemin de I<pathname> (consultez aussi B<path_resolution>(7)).

note: type: Plain text
en: Too many symbolic links were encountered in resolving I<pathname>.
fr: Trop de liens symboliques ont été rencontrés en parcourant I<pathname>.

note: type: Plain text
en: I<pathname> is too long.
fr: I<pathname> est trop long.

note: type: Plain text
en: A component of I<pathname> does not exist or is a dangling symbolic link.
fr: Un composant du chemin d'accès I<pathname> n'existe pas ou est un lien symbolique pointant nulle part.

note: type: Plain text
en: A component used as a directory in I<pathname> is not, in fact, a directory.
fr: Un élément du chemin d'accès I<pathname> n'est pas un répertoire.

note: type: Plain text
en: Write permission was requested for a file on a read-only filesystem.
fr: On demande une écriture sur un système de fichiers en lecture seule.

note: type: Plain text
en: B<access>()  and B<faccessat>()  may fail if:
fr: B<access>() et B<faccessat>() peuvent échouer si\ :

note: type: Plain text
en: I<pathname> points outside your accessible address space.
fr: I<pathname> pointe en\(hydehors de l'espace d'adressage accessible.

note: type: Plain text
en: I<mode> was incorrectly specified.
fr: I<mode> était mal indiqué.

note: type: Plain text
en: An I/O error occurred.
fr: Une erreur d'entrée-sortie s'est produite.

note: type: Plain text
en: Insufficient kernel memory was available.
fr: Pas assez de mémoire pour le noyau.

note: type: Plain text
en: Write access was requested to an executable which is being executed.
fr: On a demandé l'écriture dans un fichier exécutable qui est en cours d'utilisation.

note: type: Plain text
en: The following additional errors can occur for B<faccessat>():
fr: Les erreurs supplémentaires suivantes peuvent également se produire pour B<faccessat>() :

note: type: Plain text
en: I<dirfd> is not a valid file descriptor.
fr: I<dirfd> n'est pas un descripteur de fichier valable.

note: type: Plain text
en: Invalid flag specified in I<flags>.
fr: I<flags> contient un attribut invalide.

note: type: Plain text
en: I<pathname> is relative and I<dirfd> is a file descriptor referring to a file other than a directory.
fr: I<pathname> est relatif, et le descripteur de fichier I<dirfd> est associé à un fichier, pas à un répertoire.

note: type: Plain text
en: B<faccessat>()  was added to Linux in kernel 2.6.16; library support was added to glibc in version 2.4.
fr: B<faccessat>() a été ajouté au noyau Linux dans sa version 2.6.16 ; la glibc le gère depuis la version 2.4.

note: type: Plain text
en: B<access>(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.
fr: B<access>() : SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.

note: type: Plain text
en: B<faccessat>(): POSIX.1-2008.
fr: B<faccessat>() : POSIX.1-2008.

note: type: Plain text
en: B<Warning>: Using these calls to check if a user is authorized to, for example, open a file before actually doing so using B<open>(2)  creates a security hole, because the user might exploit the short time interval between checking and opening the file to manipulate it.  B<For this reason, the use of this system call should be avoided>.  (In the example just described, a safer alternative would be to temporarily switch the process's effective user ID to the real ID and then call B<open>(2).)
fr: B<Attention>\ : Utiliser ces appels pour vérifier si un utilisateur a le droit, par exemple, d'ouvrir un fichier avant d'effectuer réellement l'ouverture avec B<open>(2), risque de créer un trou de sécurité. En effet, l'utilisateur peut exploiter le petit intervalle de temps entre la vérification et l'accès pour modifier le fichier. B<Pour cette raison, l'utilisation de cet appel système devrait être évitée> (dans cet exemple, une alternative plus sûre serait de basculer temporairement l'identifiant effectif de l'utilisateur vers l'identifiant réel et d'appeler B<open>(2)).

note: type: Plain text
en: B<access>()  always dereferences symbolic links.  If you need to check the permissions on a symbolic link, use B<faccessat>(2)  with the flag B<AT_SYMLINK_NOFOLLOW>.
fr: La fonction B<access>() déréférence toujours les liens symboliques. Si vous avez besoin de vérifier les droits sur un lien symbolique, utilisez B<faccessat>(2) avec l'attribut B<AT_SYMLINK_NOFOLLOW>.

note: type: Plain text
en: These calls return an error if any of the access types in I<mode> is denied, even if some of the other access types in I<mode> are permitted.
fr: Ces appels renvoient une erreur si l'un des types d'accès de I<mode> est refusé, même si d'autres types indiqués dans I<mode> sont autorisés.

note: HPU-UX 11 and Tru64 5.1 do this. type: Plain text
en: If the calling process has appropriate privileges (i.e., is superuser), POSIX.1-2001 permits an implementation to indicate success for an B<X_OK> check even if none of the execute file permission bits are set.  Linux does not do this.
fr: Si le processus appelant a les privilèges suffisants (c'est-à-dire est superutilisateur), POSIX.1-2001 permet à une implémentation d'indiquer un succès pour B<X_OK> même si le fichier n'a aucun bit d'exécution positionné.

note: type: Plain text
en: A file is accessible only if the permissions on each of the directories in the path prefix of I<pathname> grant search (i.e., execute) access.  If any directory is inaccessible, then the B<access>()  call will fail, regardless of the permissions on the file itself.
fr: Un fichier n'est accessible que si les permissions de chacun des répertoires du préfixe du chemin I<pathname> permet les recherches (c'est-à-dire l'exécution). Si un répertoire est inaccessible, alors l'appel à B<access>() échouera, sans tenir compte des permissions du fichier lui-même.

note: type: Plain text
en: Only access bits are checked, not the file type or contents.  Therefore, if a directory is found to be writable, it probably means that files can be created in the directory, and not that the directory can be written as a file.  Similarly, a DOS file may be found to be "executable," but the B<execve>(2)  call will still fail.
fr: Seuls les bits d'accès sont vérifiés, et non le contenu du fichier. Ainsi, l'autorisation d'écriture dans un répertoire indique la possibilité d'y créer des fichiers et non d'y écrire comme dans un fichier. De même, un fichier DOS peut être considéré comme exécutable, alors que l'appel B<execve>(2) échouera évidemment.

note: type: Plain text
en: These calls may not work correctly on NFSv2 filesystems with UID mapping enabled, because UID mapping is done on the server and hidden from the client, which checks permissions.  (NFS versions 3 and higher perform the check on the server.)  Similar problems can occur to FUSE mounts.
fr: Ces appels peuvent peut fonctionner incorrectement sur un serveur NFSv2 si les correspondances d'UID sont activées, car ces correspondances sont gérées par le serveur, et masquées au client qui effectue les vérifications d'autorisation. Ces vérifications sont effectuées sur le serveur pour les versions NFSv3 et supérieures. Des problèmes similaires peuvent survenir avec les montages FUSE.

note: type: Plain text
en: The raw B<faccessat>()  system call takes only the first three arguments.  The B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW> flags are actually implemented within the glibc wrapper function for B<faccessat>().  If either of these flags is specified, then the wrapper function employs B<fstatat>(2)  to determine access permissions.
fr: L’appel système brut B<faccessat>() n’accepte que les trois premiers arguments. Les attributs B<AT_EACCESS> et B<AT_SYMLINK_NOFOLLOW> sont en fait implémentés dans la fonction enveloppe de la glibc pour B<faccessat>(). Si aucun de ces attributs n'est indiqué, la fonction enveloppe utilise B<fstatat>(2) pour déterminer les droits d'accès.

note: type: SH
en: BUGS
fr: BOGUES

note: This behavior appears to have been an implementation accident. type: Plain text
en: In kernel 2.4 (and earlier) there is some strangeness in the handling of B<X_OK> tests for superuser.  If all categories of execute permission are disabled for a nondirectory file, then the only B<access>()  test that returns -1 is when I<mode> is specified as just B<X_OK>; if B<R_OK> or B<W_OK> is also specified in I<mode>, then B<access>()  returns 0 for such files.  Early 2.6 kernels (up to and including 2.6.3)  also behaved in the same way as kernel 2.4.
fr: Dans le noyau 2.4 (et auparavant) les tests B<X_OK> sont gérés de façon bizarre pour le superutilisateur. Si toutes les catégories de permission d'exécution sont désactivées pour un fichier (n'étant pas un répertoire), B<access>() ne renvoie -1 que si le I<mode> est juste B<X_OK> ; si B<R_OK> ou B<W_OK> est également précisé dans le I<mode>, B<access>() renvoyait 0 pour ce fichier. Les premier noyaux 2.6 (jusqu'à la version 2.6.3) se comportaient de la même façon que les noyaux 2.4.

note: type: Plain text
en: In kernels before 2.6.20, these calls ignored the effect of the B<MS_NOEXEC> flag if it was used to B<mount>(2)  the underlying filesystem.  Since kernel 2.6.20, the B<MS_NOEXEC> is honored
fr: Dans les noyaux antérieurs à 2.6.20, ces appels ignoraient l'effet de l'attribut B<MS_NOEXEC> s'il était utilisé pour monter le système de fichiers correspondant (avec B<mount>(2)). Depuis Linux 2.6.20, cet attribut est pris en compte.

note: type: TH
en: 2014-02-23
fr: 23 février 2014

note: type: Plain text
en: alarm - set an alarm clock for delivery of a signal
fr: alarm - Programmer un réveil pour l'émission d'un signal

note: type: Plain text
en: B<unsigned int alarm(unsigned int >I<seconds>B<);>
fr: B<unsigned int alarm(unsigned int >I<nb_sec>B<);>

note: type: Plain text
en: B<alarm>()  arranges for a B<SIGALRM> signal to be delivered to the calling process in I<seconds> seconds.
fr: B<alarm>() programme une temporisation pour qu'elle envoie un signal B<SIGALRM> au processus appelant dans I<nb_sec> secondes.

note: type: Plain text
en: If I<seconds> is zero, any pending alarm is canceled.
fr: Si I<seconds> vaut zéro, toute alarme en attente est annulée.

note: type: Plain text
en: In any event any previously set B<alarm>()  is canceled.
fr: Dans tous les cas, l'appel B<alarm>() annule l'éventuelle programmation précédente.

note: type: Plain text
en: B<alarm>()  returns the number of seconds remaining until any previously scheduled alarm was due to be delivered, or zero if there was no previously scheduled alarm.
fr: B<alarm>() renvoie le nombre de secondes qu'il restait de la programmation précédente (annulée), ou zéro si aucune alarme n'avait été planifiée auparavant.

note: type: Plain text
en: SVr4, POSIX.1-2001, 4.3BSD.
fr: SVr4, POSIX.1-2001, BSD 4.3.

note: type: Plain text
en: B<alarm>()  and B<setitimer>(2)  share the same timer; calls to one will interfere with use of the other.
fr: Les fonctions B<alarm>() et B<setitimer>(2) partagent la même temporisation, aussi l'appel de l'une interfère avec l'utilisation de l'autre.

note: type: Plain text
en: Alarms created by B<alarm()> are preserved across B<execve>(2)  and are not inherited by children created via B<fork>(2).
fr: Les alarmes créées par B<alarm()> sont conservées lors des appels à B<execve>(2), mais ne le sont pas par les fils créés avec B<fork>(2).

note: type: Plain text
en: B<sleep>(3)  may be implemented using B<SIGALRM>; mixing calls to B<alarm>()  and B<sleep>(3)  is a bad idea.
fr: B<sleep>(3) peut être implémenté en utilisant B<SIGALRM>, aussi il est déconseillé de mélanger les appels B<alarm>() et B<sleep>(3).

note: type: Plain text
en: Scheduling delays can, as ever, cause the execution of the process to be delayed by an arbitrary amount of time.
fr: Les délais dûs au multitâche peuvent, comme toujours, retarder le déclenchement d'une alarme d'une durée arbitraire.

note: type: TH
en: 2010-09-20
fr: 20 septembre 2010

note: type: Plain text
en: brk, sbrk - change data segment size
fr: brk, sbrk - Modifier la taille du segment de données

note: type: Plain text
en: B<brk>(), B<sbrk>():
fr: B<brk>(), B<sbrk>()\ :

note: type: TP
en: Since glibc 2.12:
fr: Depuis la glibc 2.12 :

note: type: Plain text
en: Before glibc 2.12: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ E<gt>=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
fr: Avant la glibc 2.12 : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\ E<gt>=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED

note: type: Plain text
en: B<brk>()  and B<sbrk>()  change the location of the I<program break>, which defines the end of the process's data segment (i.e., the program break is the first location after the end of the uninitialized data segment).  Increasing the program break has the effect of allocating memory to the process; decreasing the break deallocates memory.
fr: B<brk>() et B<sbrk>() modifient l'emplacement de l'I<interruption de programme>, qui définit la fin du segment de données du processus (c'est-à-dire, l'interruption de programme est l'endroit juste à la fin du segment de données non initialisé). Augmenter l'interruption de programme a pour effet d'allouer de la mémoire au processus ; la diminuer à pour effet de désallouer de la mémoire.

note: type: Plain text
en: B<brk>()  sets the end of the data segment to the value specified by I<addr>, when that value is reasonable, the system has enough memory, and the process does not exceed its maximum data size (see B<setrlimit>(2)).
fr: B<brk>() positionne la fin du segment de données (le premier mot mémoire hors de la zone accessible) à l'adresse indiquée par I<addr>. Cette valeur doit être raisonnable, le système doit avoir suffisamment de mémoire, et le processus ne doit pas dépasser sa taille maximale de segment de données (consultez B<setrlimit>(2)).

note: type: Plain text
en: B<sbrk>()  increments the program's data space by I<increment> bytes.  Calling B<sbrk>()  with an I<increment> of 0 can be used to find the current location of the program break.
fr: B<sbrk>() incrémente l'espace de données du programme de I<increment> octets. Appeler B<sbrk>() avec un I<increment> nul permet d'obtenir l'emplacement de la limite actuelle.

note: type: Plain text
en: On success, B<brk>()  returns zero.  On error, -1 is returned, and I<errno> is set to B<ENOMEM>.  (But see I<Linux Notes> below.)
fr: S'il réussit, B<brk>() renvoie zéro. En cas d'erreur, il renvoie -1 et remplit I<errno> avec B<ENOMEM> (consultez la section I<Notes sur Linux> ci\(hydessous).

note: type: Plain text
en: On success, B<sbrk>()  returns the previous program break.  (If the break was increased, then this value is a pointer to the start of the newly allocated memory).  On error, I<(void\ *)\ -1> is returned, and I<errno> is set to B<ENOMEM>.
fr: S'il réussit, B<sbrk>() renvoie l'interruption de programme précédente. (Si la limite a été augmentée, cette valeur est un pointeur sur le début de la nouvelle zone de données). En cas d'échec, I<(void\ *)\ -1> est renvoyé et I<errno> contient le code d'erreur B<ENOMEM>.

note: .BR brk () and .BR sbrk () are not defined in the C Standard and are deliberately excluded from the POSIX.1-1990 standard (see paragraphs B.1.1.1.3 and B.8.3.3). type: Plain text
en: 4.3BSD; SUSv1, marked LEGACY in SUSv2, removed in POSIX.1-2001.
fr: BSD\ 4.3\ ; SUSv1, considéré comme historique dans SUSv2, supprimé dans POSIX.1-2001.

note: type: Plain text
en: Avoid using B<brk>()  and B<sbrk>(): the B<malloc>(3)  memory allocation package is the portable and comfortable way of allocating memory.
fr: Évitez d'utiliser B<brk>() et B<sbrk>() : la fonction d'allocation mémoire B<malloc>(3) est une méthode portable et confortable d'allouer de la mémoire.

note: One sees \fIint\fP (e.g., XPGv4, DU 4.0, HP-UX 11, FreeBSD 4.0, OpenBSD 3.2), \fIssize_t\fP (OSF1 2.0, Irix 5.3, 6.5), \fIptrdiff_t\fP (libc4, libc5, ulibc, glibc 2.0, 2.1), \fIintptr_t\fP (e.g., XPGv5, AIX, SunOS 5.8, 5.9, FreeBSD 4.7, NetBSD 1.6, Tru64 5.1, glibc2.2). type: Plain text
en: Various systems use various types for the argument of B<sbrk>().  Common are I<int>, I<ssize_t>, I<ptrdiff_t>, I<intptr_t>.
fr: Différents systèmes utilisent différents types comme paramètres à B<sbrk>(). Les plus courants sont I<int>, I<ssize_t>, I<ptrdiff_t>, I<intptr_t>.

note: type: SS
en: Linux notes
fr: Notes sur Linux

note: type: Plain text
en: The return value described above for B<brk>()  is the behavior provided by the glibc wrapper function for the Linux B<brk>()  system call.  (On most other implementations, the return value from B<brk>()  is the same; this return value was also specified in SUSv2.)  However, the actual Linux system call returns the new program break on success.  On failure, the system call returns the current break.  The glibc wrapper function does some work (i.e., checks whether the new break is less than I<addr>)  to provide the 0 and -1 return values described above.
fr: La valeur de retour décrite ci\(hydessus pour B<brk>() est le comportement de la fonction de glibc autour de l'appel système B<brk>() de Linux. (Sur la plupart des autres implémentations, la valeur de retour de B<brk>() est la même ; cette valeur de retour est également indiquée par SUSv2.) Cependant, l'appel système Linux lui\(hymême renvoie la nouvelle limite du segment de données. En cas d'échec, l'appel système renvoie la limite actuelle. La fonction enveloppe de la glibc fait le nécessaire (c'est-à-dire vérifie que la nouvelle limite est inférieure à I<addr>) pour renvoyer les valeurs de retour 0 et -1 décrites plus haut.

note: type: Plain text
en: On Linux, B<sbrk>()  is implemented as a library function that uses the B<brk>()  system call, and does some internal bookkeeping so that it can return the old break value.
fr: Sous Linux, B<sbrk>() est implémenté comme une fonction de bibliothèque utilisant l'appel système B<brk>(), et fait certains calculs internes pour pouvoir renvoyer l'ancienne valeur de la limite.

note: type: TH
en: 2010-11-25
fr: 25 novembre 2010

note: type: Plain text
en: chdir, fchdir - change working directory
fr: chdir, fchdir - Changer le répertoire courant

note: type: Plain text
en: B<fchdir>():
fr: B<fchdir>()\ :

note: type: Plain text
en: || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ E<gt>=\ 200809L
fr: || /* Depuis la glibc 2.12 : */ _POSIX_C_SOURCE\ E<gt>=\ 200809L

note: type: Plain text
en: B<chdir>()  changes the current working directory of the calling process to the directory specified in I<path>.
fr: B<chdir>() remplace le répertoire de travail courant du processus appelant par celui indiqué dans le chemin I<path>.

note: type: Plain text
en: B<fchdir>()  is identical to B<chdir>(); the only difference is that the directory is given as an open file descriptor.
fr: B<fchdir>() est identique à B<chdir>(), sauf que le répertoire cible est fourni sous forme de descripteur de fichier.

note: type: Plain text
en: On success, zero is returned.  On error, -1 is returned, and I<errno> is set appropriately.
fr: S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit I<errno> en conséquence.

note: type: Plain text
en: Depending on the filesystem, other errors can be returned.  The more general errors for B<chdir>()  are listed below:
fr: Suivant le type de système de fichiers, plusieurs erreurs peuvent être renvoyées, les plus courantes pour B<chdir>() sont les suivantes\ :

note: type: Plain text
en: Search permission is denied for one of the components of I<path>.  (See also B<path_resolution>(7).)
fr: L'accès n'est pas autorisé sur un élément du chemin I<path>. (Consultez aussi B<path_resolution>(7).)

note: type: Plain text
en: I<path> points outside your accessible address space.
fr: I<path> pointe en dehors de l'espace d'adressage accessible.

note: type: Plain text
en: Too many symbolic links were encountered in resolving I<path>.
fr: I<path> contient une référence circulaire (à travers un lien symbolique)

note: type: Plain text
en: I<path> is too long.
fr: I<path> est trop long.

note: type: Plain text
en: The file does not exist.
fr: Le fichier n'existe pas.

note: type: Plain text
en: A component of I<path> is not a directory.
fr: Un élément du chemin d'accès I<path> n'est pas un répertoire.

note: type: Plain text
en: The general errors for B<fchdir>()  are listed below:
fr: Les erreurs courantes pour B<fchdir>() sont\ :

note: type: Plain text
en: Search permission was denied on the directory open on I<fd>.
fr: Le répertoire ouvert sur I<fd> n'autorise pas le parcours.

note: type: Plain text
en: I<fd> is not a valid file descriptor.
fr: I<fd> n'est pas un descripteur de fichier valable.

note: type: Plain text
en: SVr4, 4.4BSD, POSIX.1-2001.
fr: SVr4, BSD\ 4.4, POSIX.1-2001.

note: type: Plain text
en: The current working directory is the starting point for interpreting relative pathnames (those not starting with \(aq/\(aq).
fr: Le répertoire de travail est le point de départ pour l'interprétation des chemins relatifs (qui ne commencent pas par « / »).

note: type: Plain text
en: A child process created via B<fork>(2)  inherits its parent's current working directory.  The current working directory is left unchanged by B<execve>(2).
fr: Un processus fils créé avec B<fork>(2) hérite du répertoire de travail courant de son père. Le répertoire de travail courant n'est pas modifié par un B<execve>(2).

note: type: Plain text
en: chmod, fchmod, fchmodat - change permissions of a file
fr: chmod, fchmod, fchmodat - Modifier les permissions d'accès à un fichier

note: type: Plain text
en: B<#include E<lt>fcntl.hE<gt>>           /* Definition of AT_* constants */
    B<#include E<lt>sys/stat.hE<gt>>
fr: B<#include E<lt>fcntl.hE<gt>>           /* Définition des constantes AT_* */
    B<#include E<lt>sys/stat.hE<gt>>

note: type: Plain text
en: B<fchmod>():
fr: B<fchmod>()\ :

note: type: Plain text
en: B<fchmodat>():
fr: B<fchmodat>()\ :

note: type: Plain text
en: The B<chmod>()  and B<fchmod>()  system calls change the permissions of a file.  They differ only in how the file is specified:
fr: Les appels système B<chmod>()  and B<fchmod>() modifient les permissions d'un fichier. Ils diffèrent seulement dans la façon dont le fichier est indiqué :

note: type: Plain text
en: B<chmod>()  changes the permissions of the file specified whose pathname is given in I<pathname>, which is dereferenced if it is a symbolic link.
fr: B<chmod>() modifie les permissions du fichier indiqué dont le nom est fourni dans I<pathname>, qui est déréférencé s'il s'agit d'un lien symbolique.

note: type: Plain text
en: B<fchmod>()  changes the permissions of the file referred to by the open file descriptor I<fd>.
fr: B<fchmod>() modifie les permissions du fichier référencé par le descripteur de fichier ouvert I<fd>.

note: type: Plain text
en: The new file permissions are specified in I<mode>, which is a bit mask created by ORing together zero or more of the following:
fr: Les nouvelles permissions du fichier sont indiquées dans I<mode>, qui est un masque de bit créé par un OU bit à bit de zéro ou plusieurs des valeurs suivantes :

note: type: Plain text
en: set-user-ID (set process effective user ID on B<execve>(2))
fr: SUID (Définir l'UID effectif d'un processus lors d'un B<execve>(2))

note: type: Plain text
en: set-group-ID (set process effective group ID on B<execve>(2); mandatory locking, as described in B<fcntl>(2); take a new file's group from parent directory, as described in B<chown>(2)  and B<mkdir>(2))
fr: SGID (Définir le GID effectif d'un processus lors d'un B<execve>(2) ; verrou obligatoire, comme décrit dans B<fcntl>(2) ; prendre un nouveau groupe de fichiers dans le répertoire parent, comme décrit dans B<chown>(2) et B<mkdir>(2))

note: type: Plain text
en: sticky bit (restricted deletion flag, as described in B<unlink>(2))
fr: définir le bit « sticky » (attribut de suppression restreinte, comme décrit dans B<unlink>(2))

note: type: Plain text
en: read by owner
fr: accès en lecture pour le propriétaire

note: type: Plain text
en: write by owner
fr: accès en écriture pour le propriétaire

note: type: Plain text
en: execute/search by owner ("search" applies for directories, and means that entries within the directory can be accessed)
fr: accès en exécution/parcours par le propriétaire (« parcours » s'applique aux répertoires, et signifie que le contenu du répertoire est accessible)

note: type: Plain text
en: read by group
fr: accès en lecture pour le groupe

note: type: Plain text
en: write by group
fr: accès en écriture pour le groupe

note: type: Plain text
en: execute/search by group
fr: accès en exécution/parcours pour le groupe

note: type: Plain text
en: read by others
fr: accès en lecture pour les autres

note: type: Plain text
en: write by others
fr: accès en écriture pour les autres

note: type: Plain text
en: execute/search by others
fr: accès en exécution/parcours pour les autres

note: type: Plain text
en: The effective UID of the calling process must match the owner of the file, or the process must be privileged (Linux: it must have the B<CAP_FOWNER> capability).
fr: L'UID effectif du processus appelant doit correspondre à celui du propriétaire du fichier, ou le processus doit être privilégié (sous Linux\ : il doit avoir la capacité B<CAP_FOWNER>).

note: type: Plain text
en: If the calling process is not privileged (Linux: does not have the B<CAP_FSETID> capability), and the group of the file does not match the effective group ID of the process or one of its supplementary group IDs, the B<S_ISGID> bit will be turned off, but this will not cause an error to be returned.
fr: Si le processus appelant n'est pas privilégié (sous Linux\ : n'a pas la capacité B<CAP_FSETID>), et si le groupe du fichier ne correspond ni au GID effectif du processus, ni à l'un de ses éventuels groupes supplémentaires, le bit B<S_ISGID> sera désactivé, mais cela ne créera pas d'erreur.

note: type: Plain text
en: As a security measure, depending on the filesystem, the set-user-ID and set-group-ID execution bits may be turned off if a file is written.  (On Linux this occurs if the writing process does not have the B<CAP_FSETID> capability.)  On some filesystems, only the superuser can set the sticky bit, which may have a special meaning.  For the sticky bit, and for set-user-ID and set-group-ID bits on directories, see B<stat>(2).
fr: Par mesure de sécurité, suivant le type de système de fichiers, les bits Set-UID et Set-GID peuvent être effacés si un fichier est écrit. (Sous Linux, cela arrive si le processus qui écrit n'a pas la capacité B<CAP_FSETID>. Sur certains systèmes de fichiers, seul le superutilisateur peut positionner le Sticky-Bit, lequel peut avoir une signification spécifique. Pour la signification du Sticky-Bit et du bit Set-GID sur les répertoires, consultez B<stat>(2).

note: type: Plain text
en: On NFS filesystems, restricting the permissions will immediately influence already open files, because the access control is done on the server, but open files are maintained by the client.  Widening the permissions may be delayed for other clients if attribute caching is enabled on them.
fr: Sur les systèmes de fichiers NFS, une restriction des autorisations d'accès aura un effet immédiat y compris sur les fichiers déjà ouverts, car les contrôles d'accès sont effectués sur le serveur, mais les fichiers sont maintenus ouverts sur le client. Par contre, un élargissement des autorisations peut ne pas être immédiat pour les autres clients, s'ils disposent d'un cache.

note: type: Plain text
en: The B<fchmodat>()  system call operates in exactly the same way as B<chmod>(), except for the differences described here.
fr: L'appel système B<fchmodat>() fonctionne exactement comme B<chmod>(2), les seules différences étant celles décrites ici.

note: type: Plain text
en: If the pathname given in I<pathname> is relative, then it is interpreted relative to the directory referred to by the file descriptor I<dirfd> (rather than relative to the current working directory of the calling process, as is done by B<chmod>()  for a relative pathname).
fr: Si I<pathname> est un chemin relatif, il est interprété par rapport au répertoire référencé par le descripteur de fichier I<dirfd>, plutôt que par rapport au répertoire courant, comme dans B<chmod>().

note: type: Plain text
en: If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, then I<pathname> is interpreted relative to the current working directory of the calling process (like B<chmod>()).
fr: Si I<pathname> est un chemin relatif, et si I<dirfd> est la valeur spéciale B<AT_FDCWD>, I<pathname> est interprété comme étant relatif au répertoire courant du processus appelant, comme pour B<chmod>().

note: type: Plain text
en: I<flags> can either be 0, or include the following flag:
fr: L'argument I<flags> est soit 0, soit un I<OU> binaire «\ |\ » avec les options suivantes\ :

note: type: Plain text
en: If I<pathname> is a symbolic link, do not dereference it: instead operate on the link itself.  This flag is not currently implemented.
fr: Si I<pathname> est un lien symbolique, ne pas le déréférencer, mais renvoyer des informations sur le lien lui-même. Cet attribut n'est actuellement pas implémenté.

note: type: Plain text
en: See B<openat>(2)  for an explanation of the need for B<fchmodat>().
fr: Consultez B<openat>(2) pour une explication de la nécessité de B<fchmodat>().

note: type: Plain text
en: Depending on the filesystem, errors other than those listed below can be returned.
fr: Suivant le type de système de fichiers, d'autres erreurs que celles listées ci-desous peuvent être renvoyées.

note: type: Plain text
en: The more general errors for B<chmod>()  are listed below:
fr: Les erreurs les plus courantes pour B<chmod>() sont\ :

note: Also search permission is required on the final component, maybe just to guarantee that it is a directory? type: Plain text
en: Search permission is denied on a component of the path prefix.  (See also B<path_resolution>(7).)
fr: L'accès à un élément du chemin est interdit. (Voir aussi B<path_resolution>(7).)

note: type: Plain text
en: A component of the path prefix is not a directory.
fr: Un élément du chemin d'accès n'est pas un répertoire.

note: type: Plain text
en: The effective UID does not match the owner of the file, and the process is not privileged (Linux: it does not have the B<CAP_FOWNER> capability).
fr: L'UID effectif ne correspond pas au propriétaire du fichier, et le processus n'est pas privilégié (sous Linux\ : il n'a pas la capacité B<CAP_FOWNER>).

note: type: Plain text
en: The named file resides on a read-only filesystem.
fr: Le fichier indiqué réside sur un système de fichiers en lecture seule.

note: type: Plain text
en: The general errors for B<fchmod>()  are listed below:
fr: Les erreurs les plus courantes pour B<fchmod>() sont\ :

note: type: Plain text
en: The file descriptor I<fd> is not valid.
fr: Le descripteur de fichier I<fd> n'est pas valable.

note: type: Plain text
en: See above.
fr: Voir plus haut.

note: type: Plain text
en: The same errors that occur for B<chmod>()  can also occur for B<fchmodat>().  The following additional errors can occur for B<fchmodat>():
fr: Les mêmes erreurs qui apparaissent pour B<chmod>(2) peuvent apparaître pour B<fchmodat>(). Les erreurs supplémentaires suivantes peuvent également se produire pour B<fchmodat>()\ :

note: type: Plain text
en: I<flags> specified B<AT_SYMLINK_NOFOLLOW>, which is not supported.
fr: I<flags> spécifiait B<AT_SYMLINK_NOFOLLOW>, qui n'est pas supporté.

note: type: Plain text
en: B<fchmodat>()  was added to Linux in kernel 2.6.16; library support was added to glibc in version 2.4.
fr: B<fchmodat>() a été ajouté au noyau Linux dans sa version 2.6.16 ; la glibc le gère depuis la version 2.4.

note: type: Plain text
en: B<chmod>(), B<fchmod>(): 4.4BSD, SVr4, POSIX.1-2001i, POSIX.1-2008.
fr: B<chmod>(), B<fchmod>() : 4.4BSD, SVr4, POSIX.1-2001i, POSIX.1-2008.

note: type: Plain text
en: B<fchmodat>(): POSIX.1-2008.
fr: B<fchmodat>() : POSIX.1-2008.

note: type: Plain text
en: The GNU C library B<fchmodat>()  wrapper function implements the POSIX-specified interface described in this page.  This interface differs from the underlying Linux system call, which does I<not> have a I<flags> argument.
fr: La fonction enveloppe B<fchmodat>() de la bibliothèque C de GNU implémente l'interface conforme à POSIX décrite dans cette page. Cette interface est différente de l'appel système Linux sous-jacent, qui n'a I<pas> d'argument I<flags>.

note: type: TH
en: 2014-03-19
fr: 19 mars 2014

note: type: Plain text
en: chown, fchown, lchown, fchownat - change ownership of a file
fr: chown, fchown, lchown, fchownat - Modifier l'appartenance d'un fichier

note: type: Plain text
en: B<fchown>(), B<lchown>():
fr: B<fchown>(), B<lchown>()\ :

note: type: Plain text
en: B<fchownat>():
fr: B<fchownat>()\ :

note: type: Plain text
en: These system calls change the owner and group of a file.  The B<chown>(), B<fchown>(), and B<lchown>()  system calls differ only in how the file is specified:
fr: Ces appels système modifient le propriétaire et le groupe d'un fichier. Les appels système B<chown>(), B<fchown>() et B<lchown>() diffèrent seulement dans la façon dont le fichier est indiqué :

note: type: Plain text
en: B<chown>()  changes the ownership of the file specified by I<pathname>, which is dereferenced if it is a symbolic link.
fr: B<chown>() modifie l'appartenance du fichier indiqué dans I<pathname>, qui est déréférencé s'il s'agit d'un lien symbolique.

note: type: Plain text
en: B<fchown>()  changes the ownership of the file referred to by the open file descriptor I<fd>.
fr: B<fchown>() modifie l'appartenance du fichier référencé par le descripteur de fichier ouvert I<fd>.

note: type: Plain text
en: B<lchown>()  is like B<chown>(), but does not dereference symbolic links.
fr: B<lchown>() est comme B<chown>(), mais ne déréférence pas les liens symboliques.

note: type: Plain text
en: Only a privileged process (Linux: one with the B<CAP_CHOWN> capability) may change the owner of a file.  The owner of a file may change the group of the file to any group of which that owner is a member.  A privileged process (Linux: with B<CAP_CHOWN>)  may change the group arbitrarily.
fr: Seul un processus privilégié (sous Linux\ : un processus qui a la capacité B<CAP_CHOWN>) peut modifier le propriétaire d'un fichier. Le propriétaire peut modifier le groupe du fichier pour n'importe quel groupe auquel il appartient. Un processus privilégié (sous Linux\ : avec la capacité B<CAP_CHOWN>) peut modifier le groupe arbitrairement.

note: type: Plain text
en: If the I<owner> or I<group> is specified as -1, then that ID is not changed.
fr: Si l'argument I<owner> ou I<group> vaut -1, l'élément correspondant n'est pas changé.

note: In Linux 2.0 kernels, superuser was like everyone else In 2.2, up to 2.2.12, these bits were not cleared for superuser. Since 2.2.13, superuser is once more like everyone else. type: Plain text
en: When the owner or group of an executable file are changed by an unprivileged user the B<S_ISUID> and B<S_ISGID> mode bits are cleared.  POSIX does not specify whether this also should happen when root does the B<chown>(); the Linux behavior depends on the kernel version.  In case of a non-group-executable file (i.e., one for which the B<S_IXGRP> bit is not set) the B<S_ISGID> bit indicates mandatory locking, and is not cleared by a B<chown>().
fr: Quand le propriétaire, ou le groupe d'un fichier exécutable sont modifiés par un utilisateur ordinaire, les bits B<S_ISUID> et B<S_ISGID> sont effacés. POSIX ne précise pas s'il faut agir de même lorsque c'est le superutilisateur qui invoque B<chown>(). Le comportement de Linux dans ce cas dépend de la version du noyau. Si le fichier n'est pas exécutable par les membres de son groupe (c'est-à-dire un fichier pour lequel le bit B<S_IXGRP> n'est pas positionné), le bit B<S_ISGID> indique la présence d'un verrou obligatoire sur le fichier, et n'est donc pas effacé par un B<chown>().

note: type: Plain text
en: The B<fchownat>()  system call operates in exactly the same way as B<chown>(), except for the differences described here.
fr: L'appel système B<fchownat>() fonctionne exactement comme B<chown>(), les seules différences étant celles décrites ici.

note: type: Plain text
en: If the pathname given in I<pathname> is relative, then it is interpreted relative to the directory referred to by the file descriptor I<dirfd> (rather than relative to the current working directory of the calling process, as is done by B<chown>()  for a relative pathname).
fr: Si I<pathname> est un chemin relatif, il est interprété par rapport au répertoire référencé par le descripteur de fichier I<dirfd> (plutôt que relativement au répertoire de travail courant du processus appelant, comme cela est fait par B<chown>() pour un chemin relatif).

note: type: Plain text
en: If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, then I<pathname> is interpreted relative to the current working directory of the calling process (like B<chown>()).
fr: Si I<pathname> est relatif et si I<dirfd> est la valeur spéciale B<AT_FDCWD>, I<pathname> est interprété comme étant relatif au répertoire courant du processus appelant (comme B<chown>()).

note: type: Plain text
en: The I<flags> argument is a bit mask created by ORing together 0 or more of the following values;
fr: L'argument I<flags> est un masque construit en réalisant un OU logique entre zéro ou plusieurs des valeurs suivantes\ :

note: type: TP
en: B<AT_EMPTY_PATH> (since Linux 2.6.39)
fr: B<AT_EMPTY_PATH> (depuis Linux 2.6.39)

note: commit 65cfc6722361570bfe255698d9cd4dccaf47570d Before glibc 2.16, defining _ATFILE_SOURCE sufficed type: Plain text
en: If I<pathname> is an empty string, operate on the file referred to by I<dirfd> (which may have been obtained using the B<open>(2)  B<O_PATH> flag).  In this case, I<dirfd> can refer to any type of file, not just a directory.  If I<dirfd> is B<AT_FDCWD>, the call operates on the current working directory.  This flag is Linux-specific; define B<_GNU_SOURCE> to obtain its definition.
fr: Si I<pathname> est une chaîne vide, opérer sur le fichier référencé par I<dirfd> (qui peut avoir été obtenu en utilisant B<open>(2) avec le drapeau B<O_PATH>). Dans ce cas, I<dirfd> peut référer à tout type de fichier, pas uniquement un répertoire. Si I<dirfd> vaut B<AT_FDCWD>, l'appel opère sur le répertoire en cours. Ce drapeau est spécifique à Linux, B<_GNU_SOURCE> doit être définie pour obtenir sa définition.

note: type: Plain text
en: If I<pathname> is a symbolic link, do not dereference it: instead operate on the link itself, like B<lchown>().  (By default, B<fchownat>()  dereferences symbolic links, like B<chown>().)
fr: Si I<pathname> est un lien symbolique, ne pas le déréférencer, mais renvoyer des informations sur le lien lui-même, comme le fait B<lchown>(). (Par défaut, B<fchownat>() suit les liens symboliques, comme B<chown>().)

note: type: Plain text
en: See B<openat>(2)  for an explanation of the need for B<fchownat>().
fr: Consultez B<openat>(2) pour une explication de la nécessité de B<fchownat>().

note: type: Plain text
en: The more general errors for B<chown>()  are listed below.
fr: Les erreurs les plus courantes pour B<chown>() sont les suivantes\ :

note: type: Plain text
en: The calling process did not have the required permissions (see above) to change owner and/or group.
fr: Le processus appelant n'a pas les permissions nécessaires (voir plus haut) pour modifier le propriétaire et/ou le groupe.

note: type: Plain text
en: The general errors for B<fchown>()  are listed below:
fr: Les erreurs courantes pour B<fchown>() sont les suivantes\ :

note: type: Plain text
en: The descriptor is not valid.
fr: Le descripteur de fichier est invalide.

note: type: Plain text
en: A low-level I/O error occurred while modifying the inode.
fr: Une erreur d'entrée-sortie bas niveau s'est produite durant la modification de l'inœud.

note: type: Plain text
en: The same errors that occur for B<chown>()  can also occur for B<fchownat>().  The following additional errors can occur for B<fchownat>():
fr: Les mêmes erreurs qui apparaissent pour B<chown>() peuvent apparaître pour B<fchownat>(). Les erreurs supplémentaires suivantes peuvent également se produire pour B<fchownat>() :

note: type: Plain text
en: B<fchownat>()  was added to Linux in kernel 2.6.16; library support was added to glibc in version 2.4.
fr: B<fchownat>() a été ajouté au noyau Linux dans sa version 2.6.16 ; la glibc le gère depuis la version 2.4.

note: type: Plain text
en: B<chown>(), B<fchown>(), B<lchown>(): 4.4BSD, SVr4, POSIX.1-2001, POSIX.1-2008.
fr: B<chown>(), B<fchown>(), B<lchown>() : 4.4BSD, SVr4, POSIX.1-2001, POSIX.1-2008.

note: chown(): SVr4 documents EINVAL, EINTR, ENOLINK and EMULTIHOP returns, but no ENOMEM.  POSIX.1 does not document ENOMEM or ELOOP error conditions. fchown(): SVr4 documents additional EINVAL, EIO, EINTR, and ENOLINK error conditions. type: Plain text
en: The 4.4BSD version can be used only by the superuser (that is, ordinary users cannot give away files).
fr: La version BSD\ 4.4 ne peut être appelée que par le superutilisateur (ce qui signifie qu'un utilisateur ordinaire ne peut pas céder la propriété d'un fichier).

note: type: Plain text
en: B<fchownat>(): POSIX.1-2008.
fr: B<fchownat>() : POSIX.1-2008.

note: type: Plain text
en: The original Linux B<chown>(), B<fchown>(), and B<lchown>()  system calls supported only 16-bit user and group IDs.  Subsequently, Linux 2.4 added B<chown32>(), B<fchown32>(), and B<lchown32>(), supporting 32-bit IDs.  The glibc B<chown>(), B<fchown>(), and B<lchown>()  wrapper functions transparently deal with the variations across kernel versions.
fr: Les appels système B<chown>(), B<fchown>() et B<lchown>() originaux de Linux ne géraient que des identifiants d'utilisateur et de groupe sur 16 bits. En conséquence, Linux 2.4 a ajouté B<chown32>(), B<fchown32>() et B<lchown32>() qui prennent en charge des identifiants 32 bits. Les fonctions B<chown>(), B<fchown>() et B<lchown>() de la glibc qui les encapsulent gèrent de manière transparente ces différences entre noyaux.

note: type: Plain text
en: When a new file is created (by, for example, B<open>(2)  or B<mkdir>(2)), its owner is made the same as the filesystem user ID of the creating process.  The group of the file depends on a range of factors, including the type of filesystem, the options used to mount the filesystem, and whether or not the set-group-ID permission bit is enabled on the parent directory.  If the filesystem supports the I<-o\ grpid> (or, synonymously I<-o\ bsdgroups>)  and I<-o\ nogrpid> (or, synonymously I<-o\ sysvgroups>)  B<mount>(8)  options, then the rules are as follows:
fr: Lorsqu'un nouveau fichier est créé (par exemple avec B<open>(2) ou B<mkdir>(2)), son propriétaire est le même que l'UID du système de fichiers du processus créateur. Le groupe du fichier dépend de plusieurs facteurs, incluant le type du système de fichiers, les options utilisées pour monter le système de fichiers, et si le bit de permission SGID est activé pour le répertoire parent. Si le système de fichiers accepte les options I<-o grpid> (ou de façon identique I<-o bsdgroups>) et I<-o nogrpid> (ou de façon identique I<-o sysvgroups>) de B<mount>(8), les règles sont alors les suivantes :

note: type: Plain text
en: If the filesystem is mounted with I<-o\ grpid>, then the group of a new file is made the same as that of the parent directory.
fr: Si le système de fichiers est monté avec l'option I<-o\ grpid>, le groupe du nouveau fichier est celui du répertoire parent.

note: type: Plain text
en: If the filesystem is mounted with I<-o\ nogrpid> and the set-group-ID bit is disabled on the parent directory, then the group of a new file is made the same as the process's filesystem GID.
fr: Si le système de fichiers est monté avec l'option I<-o\ nogrpid> et si le bit SGID est déactivé pour le répertoire parent, le groupe du nouveau fichier est le GID du système de fichiers du processus.

note: type: Plain text
en: If the filesystem is mounted with I<-o\ nogrpid> and the set-group-ID bit is enabled on the parent directory, then the group of a new file is made the same as that of the parent directory.
fr: Si le système de fichiers est monté avec l'option I<-o\ nogrpid> et si le bit SGID est activé pour le répertoire parent, le groupe du nouveau fichier est celui du répertoire parent.

note: type: Plain text
en: As at Linux 2.6.25, the I<-o\ grpid> and I<-o\ nogrpid> mount options are supported by ext2, ext3, ext4, and XFS.  Filesystems that don't support these mount options follow the I<-o\ nogrpid> rules.
fr: Dans Linux 2.6.25, les options de montage I<-o\ grpid> et I<-o\ nogrpid> sont acceptées par ext2, ext3, ext4 et XFS. Les systèmes de fichiers qui n'acceptent pas ces options de montage suivent les règles de l'option I<-o\ nogrpid>.

note: type: Plain text
en: The B<chown>()  semantics are deliberately violated on NFS filesystems which have UID mapping enabled.  Additionally, the semantics of all system calls which access the file contents are violated, because B<chown>()  may cause immediate access revocation on already open files.  Client side caching may lead to a delay between the time where ownership have been changed to allow access for a user and the time where the file can actually be accessed by the user on other clients.
fr: La sémantique de B<chown>() est volontairement modifiée sur les systèmes de fichiers NFS où la correspondance d'UID est activée. De plus, c'est la sémantique de tous les appels système accédant au contenu des fichiers qui est modifiée, puisque B<chown>() peut déclencher une interdiction immédiate d'accès à des fichiers déjà ouverts. Un cache situé du côté client peut induire un délai entre l'instant où l'appartenance du fichier est modifiée et le moment où l'accès est effectivement accordé à l'utilisateur.

note: type: Plain text
en: In versions of Linux prior to 2.1.81 (and distinct from 2.1.46), B<chown>()  did not follow symbolic links.  Since Linux 2.1.81, B<chown>()  does follow symbolic links, and there is a new system call B<lchown>()  that does not follow symbolic links.  Since Linux 2.1.86, this new call (that has the same semantics as the old B<chown>())  has got the same syscall number, and B<chown>()  got the newly introduced number.
fr: Dans les versions de Linux antérieures à 2.1.81 (sauf 2.1.46), B<chown>() ne suivait pas les liens symboliques. Depuis cette version, B<chown>() suit les liens symboliques, et il existe un nouvel appel système, B<lchown>(), qui ne les suit pas. Depuis Linux 2.1.86, ce nouvel appel système (qui a donc la même sémantique que l'ancien B<chown>()) a pris son numéro de syscall, et B<chown>() a reçu un nouveau numéro.

note: type: Plain text
en: The following program changes the ownership of the file named in its second command-line argument to the value specified in its first command-line argument.  The new owner can be specified either as a numeric user ID, or as a username (which is converted to a user ID by using B<getpwnam>(3)  to perform a lookup in the system password file).
fr: Le programme suivant change le propriétaire d'un fichier fourni comme second paramètre de la ligne de commande, en l'attribuant au propriétaire fourni en premier argument. Le nouveau propriétaire peut être précisé par une valeur numérique ou par le nom de l'utilisateur (qui sera converti en UID avec B<getpwnam>(3) pour rechercher dans le fichier des mots de passe du système.

note: type: SS
en: Program source
fr: Source du programme

note: type: Plain text
en:     if (argc != 3 || argv[1][0] == \(aq\e0\(aq) {
            fprintf(stderr, "%s E<lt>ownerE<gt> E<lt>fileE<gt>\en", argv[0]);
            exit(EXIT_FAILURE);
        }
fr:     if (argc != 3 || argv[1][0] == \(aq\e0\(aq) {
            fprintf(stderr, "%s E<lt>propriétaireE<gt> E<lt>fichierE<gt>\en", argv[0]);
            exit(EXIT_FAILURE);
        }

note: type: Plain text
en:     uid = strtol(argv[1], &endptr, 10);  /* Allow a numeric string */
fr:     uid = strtol(argv[1], &endptr, 10);  /* Permet une chaîne numérique */

note: type: Plain text
en:     if (*endptr != \(aq\e0\(aq) {         /* Was not pure numeric string */
            pwd = getpwnam(argv[1]);   /* Try getting UID for username */
            if (pwd == NULL) {
                perror("getpwnam");
                exit(EXIT_FAILURE);
            }
fr:     if (*endptr != \(aq\e0\(aq) {         /* N'était pas une chaîne numérique */
            pwd = getpwnam(argv[1]);    /* Essai de récupérer l'UID de l'utilisateur */
            if (pwd == NULL) {
                perror("getpwnam");
                exit(EXIT_FAILURE);
            }

note: type: Plain text
en: chroot - change root directory
fr: chroot - Modifier le répertoire racine

note: type: Plain text
en: B<chroot>():
fr: B<chroot>()\ :

note: type: TP
en: Since glibc 2.2.2:
fr: Depuis la glibc 2.2.2 :

note: type: Plain text
en: Before glibc 2.2.2: none
fr: Avant la glibc 2.2.2 : aucune

note: type: Plain text
en: B<chroot>()  changes the root directory of the calling process to that specified in I<path>.  This directory will be used for pathnames beginning with I</>.  The root directory is inherited by all children of the calling process.
fr: B<chroot>() remplace le répertoire racine du processus appelant par celui indiqué par le chemin I<path>. Ce répertoire sera utilisé comme origine des chemins commençant par I</>. Le répertoire racine est hérité par tous les enfants du processus appelant.

note: type: Plain text
en: Only a privileged process (Linux: one with the B<CAP_SYS_CHROOT> capability) may call B<chroot>().
fr: Seul un processus privilégié (sous Linux\ : un processus ayant la capacité B<CAP_SYS_CHROOT>) peut appeler B<chroot>().

note: type: Plain text
en: This call changes an ingredient in the pathname resolution process and does nothing else.
fr: Cette fonction change un des ingrédients de l'algorithme de résolution des chemins, et ne modifie rien d'autre.

note: type: Plain text
en: This call does not change the current working directory, so that after the call \(aqI<.>\(aq can be outside the tree rooted at \(aqI</>\(aq.  In particular, the superuser can escape from a "chroot jail" by doing:
fr: Notez que cet appel système ne modifie pas le répertoire de travail, aussi «\ I<.>\ » peut se retrouver en\(hydehors de l'arbre dont la racine est «\ I</>\ ». En particulier, le superutilisateur peut s'évader d'un «\ piège chroot\ » en faisant\ :

note: type: Plain text
en: This call does not close open file descriptors, and such file descriptors may allow access to files outside the chroot tree.
fr: Cet appel ne ferme aucun descripteur de fichier, et de tels descripteurs peuvent permettre un accès à des fichiers hors de l'arbre dont la racine est le nouveau «\ /\ ».

note: type: Plain text
en: Depending on the filesystem, other errors can be returned.  The more general errors are listed below:
fr: Suivant le type de système de fichiers, plusieurs erreurs peuvent être renvoyées. Les plus courantes sont les suivantes\ :

note: type: Plain text
en: The caller has insufficient privilege.
fr: L'appelant n'a pas les privilèges suffisants.

note: SVr4 documents additional EINTR, ENOLINK and EMULTIHOP error conditions. X/OPEN does not document EIO, ENOMEM or EFAULT error conditions. type: Plain text
en: SVr4, 4.4BSD, SUSv2 (marked LEGACY).  This function is not part of POSIX.1-2001.
fr: SVr4, BSD\ 4.4, SUSv2 (considéré comme historique). Cette fonction n'est pas décrite dans POSIX.1-2001.

note: type: Plain text
en: A child process created via B<fork>(2)  inherits its parent's root directory.  The root directory is left unchanged by B<execve>(2).
fr: Un processus fils créé avec B<fork>(2) hérite du répertoire racine de son père. Le répertoire racine n'est pas modifié par un B<execve>(2).

note: FIXME . eventually say something about containers, virtual servers, etc.? type: Plain text
en: FreeBSD has a stronger B<jail>()  system call.
fr: FreeBSD a un appel système B<jail>() plus solide.

note: type: TH
en: 2013-12-30
fr: 30 décembre 2013

note: type: Plain text
en: close - close a file descriptor
fr: close - Fermer un descripteur de fichier

note: type: Plain text
en: B<close>()  closes a file descriptor, so that it no longer refers to any file and may be reused.  Any record locks (see B<fcntl>(2))  held on the file it was associated with, and owned by the process, are removed (regardless of the file descriptor that was used to obtain the lock).
fr: B<close>() ferme le descripteur I<fd>, de manière à ce qu'il ne référence plus aucun fichier, et puisse être réutilisé. Tous les verrouillages (consultez B<fcntl>(2)) sur le fichier qui lui était associé, appartenant au processus, sont supprimés (quel que soit le descripteur qui fut utilisé pour obtenir le verrouillage).

note: type: Plain text
en: If I<fd> is the last file descriptor referring to the underlying open file description (see B<open>(2)), the resources associated with the open file description are freed; if the descriptor was the last reference to a file which has been removed using B<unlink>(2), the file is deleted.
fr: Si I<fd> est le dernier descripteur de fichier qui se réfère à une description de fichier ouvert sous-jacente (consultez B<open>(2)), les ressources associées à la description de fichier ouvert sont libérées. Si le descripteur était la dernière référence sur un fichier supprimé avec B<unlink>(2), le fichier est effectivement effacé.

note: type: Plain text
en: B<close>()  returns zero on success.  On error, -1 is returned, and I<errno> is set appropriately.
fr: S'il réussit, la fonction B<close>() renvoie zéro. En cas d'erreur, il renvoie -1 et remplit I<errno> avec le code d'erreur.

note: type: Plain text
en: I<fd> isn't a valid open file descriptor.
fr: Le descripteur de fichier I<fd> est invalide.

note: type: Plain text
en: The B<close>()  call was interrupted by a signal; see B<signal>(7).
fr: L'appel système B<close>() a été interrompu par un signal ; consultez B<signal>(7).

note: type: Plain text
en: SVr4, 4.3BSD, POSIX.1-2001.
fr: SVr4, BSD\ 4.3, POSIX.1-2001.

note: type: Plain text
en: Not checking the return value of B<close>()  is a common but nevertheless serious programming error.  It is quite possible that errors on a previous B<write>(2)  operation are first reported at the final B<close>().  Not checking the return value when closing the file may lead to silent loss of data.  This can especially be observed with NFS and with disk quota.  Note that the return value should only be used for diagnostics.  In particular B<close>()  should not be retried after an B<EINTR> since this may cause a reused descriptor from another thread to be closed.
fr: Ne pas vérifier la valeur de retour de B<close>() est une pratique courante mais également une grave erreur de programmation. Il est possible qu'une erreur correspondant à un appel B<write>(2) antérieur ne soit rapportée que lors du B<close>() final. Ne pas vérifier la valeur de retour lorsque l'on ferme un fichier peut conduire à une perte silencieuse de données. Ceci est principalement vrai dans le cas de systèmes de fichiers NFS, ou avec l'utilisation des quotas de disques.Notez que la valeur de retour ne devrait être utilisée que pour les diagnostics. En particulier, B<close>() ne doit pas faire l'objet d'une nouvelle tentative après l'erreur B<EINTR>, car cela pourrait entrainer la fermeture d'un decripteur réutilisé par un autre thread.

note: type: Plain text
en: A successful close does not guarantee that the data has been successfully saved to disk, as the kernel defers writes.  It is not common for a filesystem to flush the buffers when the stream is closed.  If you need to be sure that the data is physically stored, use B<fsync>(2).  (It will depend on the disk hardware at this point.)
fr: Une fermeture sans erreur ne garantit pas que les données ont été vraiment écrites sur le disque, car le noyau repousse les écritures le plus tard possible. Il n'est pas fréquent qu'un système de fichiers vide les tampons dès la fermeture d'un flux. Si vous désirez vous assurer que les informations sont en sûreté sur le disque, utilisez B<fsync>(2) (mais des considérations matérielles entrent en jeu à ce moment).

note: Date: Tue, 4 Sep 2007 13:57:35 +0200 From: Fredrik Noring <noring@nocrew.org> One such race involves signals and ERESTARTSYS. If a file descriptor in use by a system call is closed and then reused by e.g. an independent open() in some unrelated thread, before the original system call has restarted a
en: It is probably unwise to close file descriptors while they may be in use by system calls in other threads in the same process.  Since a file descriptor may be reused, there are some obscure race conditions that may cause unintended side effects.
fr: Il est probablement imprudent de fermer des descripteurs de fichier alors qu'ils peuvent peut-être être utilisés par des appels système dans d'autres threads du même processus. Puisqu'un descripteur de fichier peut être réutilisé, il y a des conditions de concurrence obscures qui peuvent provoquer des effets de bord non désirés.

note: type: TH
en: 2014-03-20
fr: 20 mars 2014

note: type: Plain text
en: confstr - get configuration dependent string variables
fr: confstr - Lire une chaîne de caractères dépendant de la configuration

note: type: Plain text
en: B<confstr>(): _POSIX_C_SOURCE\ E<gt>=\ 2 || _XOPEN_SOURCE
fr: B<confstr>() : _POSIX_C_SOURCE\ E<gt>=\ 2 || _XOPEN_SOURCE

note: type: Plain text
en: B<confstr>()  gets the value of configuration-dependent string variables.
fr: La fonction B<confstr>() fournit la valeur d'une chaîne de caractères dépendante de la configuration.

note: type: Plain text
en: The I<name> argument is the system variable to be queried.  The following variables are supported:
fr: L'argument I<name> est la variable système réclamée. Les variables suivantes sont supportées\ :

note: type: TP
en: B<_CS_GNU_LIBC_VERSION> (GNU C library only; since glibc 2.3.2)
fr: B<_CS_GNU_LIBC_VERSION> (Bibliothèque GNU C seulement\ ; depuis la glibc\ 2.3.2)

note: type: Plain text
en: A string which identifies the GNU C library version on this system (e.g, "glibc 2.3.4").
fr: Une chaîne qui identifie la version de la bibliothèque GNU C du système (par exemple, «\ glibc\ 2.3.4\ »).

note: type: TP
en: B<_CS_GNU_LIBPTHREAD_VERSION> (GNU C library only; since glibc 2.3.2)
fr: B<_CS_GNU_LIBPTHREAD_VERSION> (Bibliothèque GNU C seulement\ ; depuis la glibc\ 2.3.2)

note: type: Plain text
en: A string which identifies the POSIX implementation supplied by this C library (e.g, "NPTL 2.3.4" or "linuxthreads-0.10").
fr: Une chaîne qui identifie l'implémentation POSIX fournie par la bibliothèque C du système (par exemple, «\ NPTL\ 2.3.4\ » ou «\ linuxthreads-0.10\ »).

note: type: Plain text
en: A value for the B<PATH> variable which indicates where all the POSIX.2 standard utilities can be found.
fr: Une valeur de la variable B<PATH> indiquant les emplacements où les utilitaires standard POSIX.2 peuvent être trouvés.

note: type: Plain text
en: If I<buf> is not NULL and I<len> is not zero, B<confstr>()  copies the value of the string to I<buf> truncated to I<len - 1> bytes if necessary, with a null byte (\(aq\e0\(aq) as terminator.  This can be detected by comparing the return value of B<confstr>()  against I<len>.
fr: Si I<buf> n'est pas NULL, et si I<len> est différent de 0, alors B<confstr>() copie la valeur de la chaîne dans le tampon I<buf>, en limitant la longueur à I<len - 1> octets si nécessaire, terminée par un octet nul (« \e0 »). On peut détecter la troncature de la chaîne en comparant le résultat de B<confstr>() avec le paramètre I<len>.

note: type: Plain text
en: If I<len> is zero and I<buf> is NULL, B<confstr>()  just returns the value as defined below.
fr: Si I<len> est nulle, et si I<buf> vaut NULL, alors B<confstr>() renvoie simplement la valeur définie ci-dessus.

note: type: Plain text
en: If I<name> is a valid configuration variable, B<confstr>()  returns the number of bytes (including the terminating null byte)  that would be required to hold the entire value of that variable.  This value may be greater than I<len>, which means that the value in I<buf> is truncated.
fr: Si I<name> est une variable de configuration valide, B<confstr>() renvoie le nombre d'octets (incluant le caractère nul) qui doit être utilisé pour enregistrer la variable. Cette valeur peut être plus grande que I<len>, ce qui signifie que la valeur de I<buf> est tronquée.

note: type: Plain text
en: If I<name> is a valid configuration variable, but that variable does not have a value, then B<confstr>()  returns 0.  If I<name> does not correspond to a valid configuration variable, B<confstr>()  returns 0, and I<errno> is set to B<EINVAL>.
fr: Si I<name> est une variable de configuration valable sans valeur, alors B<confstr>() renvoie 0. Si I<name> ne correspond pas à une variable de configuration valable, B<confstr>() renvoie 0 et I<errno> est définie à B<EINVAL>.

note: type: Plain text
en: The value of I<name> is invalid.
fr: La valeur de I<name> n'est pas valable.

note: type: Plain text
en: The following code fragment determines the path where to find the POSIX.2 system utilities:
fr: Le fragment de code ci-dessous détermine le chemin d'accès aux utilitaires POSIX.2\ :

note: type: TH
en: 2014-02-26
fr: 26 février 2014

note: type: Plain text
en: crypt, crypt_r - password and data encryption
fr: crypt, crypt_r - Chiffrage de données ou de mot de passe

note: type: Plain text
en: B<#define _XOPEN_SOURCE>       /* See feature_test_macros(7) */
fr: B<#define _XOPEN_SOURCE>       /* Consultez feature_test_macros(7) */

note: type: Plain text
en: B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */
fr: B<#define _GNU_SOURCE>         /* Consultez feature_test_macros(7) */

note: type: Plain text
en: Link with I<-lcrypt>.
fr: Effectuez l'édition des liens avec l'option I<-lcrypt>.

note: type: Plain text
en: B<crypt>()  is the password encryption function.  It is based on the Data Encryption Standard algorithm with variations intended (among other things) to discourage use of hardware implementations of a key search.
fr: La fonction B<crypt> est celle utilisée pour le cryptage des mots de passe. Elle est basée sur l'algorithme DES («\ Data Encryption Standard\ ») avec des variantes prévues entre autres choses pour éviter l'implémentation matérielle d'un casseur de code.

note: type: Plain text
en: I<key> is a user's typed password.
fr: L'argument I<key> est le mot de passe saisi par l'utilisateur.

note: type: Plain text
en: I<salt> is a two-character string chosen from the set [B<a-zA-Z0-9./>].  This string is used to perturb the algorithm in one of 4096 different ways.
fr: I<salt> est une chaîne de deux caractères pris dans l'ensemble [B<a-zA-Z0-9./>]. Cette chaîne est utilisée pour introduire une perturbation (parmi 4096) dans l'algorithme.

note: type: Plain text
en: By taking the lowest 7 bits of each of the first eight characters of the I<key>, a 56-bit key is obtained.  This 56-bit key is used to encrypt repeatedly a constant string (usually a string consisting of all zeros).  The returned value points to the encrypted password, a series of 13 printable ASCII characters (the first two characters represent the salt itself).  The return value points to static data whose content is overwritten by each call.
fr: En utilisant les sept bits de poids faibles des huit premiers caractères de I<key>, une clé de 56\ bits est obtenue, qui est alors utilisée pour crypter de manière répétée une chaîne de caractères constante (souvent une chaîne de zéros). La valeur renvoyée pointe sur le mot de passe chiffré, une chaîne de 13 caractères ASCII imprimables, les deux premiers caractères représentant l'argument I<salt> lui-même. Cette valeur renvoyée pointe sur des données statiques dont le contenu est écrasé à chaque appel.

note: type: Plain text
en: Warning: The key space consists of
fr: Attention\ : L'espace des clés consistent en

note: type: Plain text
en: equal 7.2e16 possible values.  Exhaustive searches of this key space are possible using massively parallel computers.  Software, such as B<crack>(1), is available which will search the portion of this key space that is generally used by humans for passwords.  Hence, password selection should, at minimum, avoid common words and names.  The use of a B<passwd>(1)  program that checks for crackable passwords during the selection process is recommended.
fr: soient 7,2e16 valeurs possibles. Une recherche exhaustive est possible en utilisant des ordinateurs massivement parallèles. Certains logiciels sont disponibles, comme B<crack>(1), qui exploreront la portion de l'espace des clés contenant les mots de passe habituellement utilisés par les humains. Ainsi, le choix d'un mot de passe doit au minimum éviter les noms propres ou communs. On recommande fortement l'utilisation d'un programme comme B<passwd>(1) pour vérifier la fiabilité des mots de passe dès la saisie.

note: type: Plain text
en: The DES algorithm itself has a few quirks which make the use of the B<crypt>()  interface a very poor choice for anything other than password authentication.  If you are planning on using the B<crypt>()  interface for a cryptography project, don't do it: get a good book on encryption and one of the widely available DES libraries.
fr: L'algorithme DES lui-même a quelques inconvénients qui rendent l'utilisation de B<crypt>() peu recommandable pour autre chose que le cryptage de mots de passe. Si vous comptez développer un projet cryptographique en utilisant B<crypt>(), abandonnez cette idée\ : achetez un bon bouquin sur la cryptographie, et utilisez une bibliothèque DES toute faite.

note: type: Plain text
en: B<crypt_r>()  is a reentrant version of B<crypt>().  The structure pointed to by I<data> is used to store result data and bookkeeping information.  Other than allocating it, the only thing that the caller should do with this structure is to set I<data-E<gt>initialized> to zero before the first call to B<crypt_r>().
fr: B<crypt_r>() est la version réentrante de B<crypt>(). La structure pointée par I<data> est utilisée pour sauvegarder les données et marquer les informations. En plus de l'allocation, l'appelant doit initialiser I<data-E<gt>initialized> à zéro avant le premier appel à B<crypt_r>().

note: type: Plain text
en: On success, a pointer to the encrypted password is returned.  On error, NULL is returned.
fr: En cas de succès, un pointeur vers le mot de passe chiffré est renvoyé. En cas d'erreur, NULL est renvoyé.

note: type: Plain text
en: I<salt> has the wrong format.
fr: Le format de I<salt> est incorrect.

note: This level of detail is not necessary in this man page. . . .PP When encrypting a plain text P using DES with the key K results in the encrypted text C, then the complementary plain text P' being encrypted using the complementary key K' will result in the complementary encrypted text C'. Weak keys a
en: The B<crypt>()  function was not implemented, probably because of U.S.A. export restrictions.
fr: La fonction B<crypt>() est absente, probablement en raison des restrictions d'exportation des États-Unis.

note: type: Plain text
en: I</proc/sys/crypto/fips_enabled> has a nonzero value, and an attempt was made to use a weak encryption type, such as DES.
fr: I</proc/sys/crypto/fips_enabled> est différent de 0, et un chiffrement faible comme DES est sélectionné.

note: type: SH
en: ATTRIBUTES
fr: ATTRIBUTS

note: type: SS
en: Multithreading (see pthreads(7))
fr: Multithreading (voir pthreads(7))

note: type: Plain text
en: The B<crypt>()  function is not thread-safe.
fr: La fonction B<crypt>() n'est pas sûre dans un contexte multithread.

note: type: Plain text
en: The B<crypt_r>()  function is thread-safe.
fr: La fonction B<crypt_r>() est sûre dans un contexte multithread.

note: type: Plain text
en: B<crypt>(): SVr4, 4.3BSD, POSIX.1-2001.  B<crypt_r>()  is a GNU extension.
fr: B<crypt>() : SVr4, 4.3BSD, POSIX.1-2001. B<crypt_r>() est une extension B<GNU>.

note: type: SS
en: Glibc notes
fr: Notes sur la glibc

note: type: Plain text
en: The glibc2 version of this function supports additional encryption algorithms.
fr: La version glibc2 de cette fonction prend en charge des algorithmes de chiffrement supplémentaires.

note: type: Plain text
en: If I<salt> is a character string starting with the characters "$I<id>$" followed by a string terminated by "$":
fr: Si I<salt> est une chaîne de caractères commençant par les caractères « $I<id>$ » et suivit par une chaîne se terminant par « $ » :

note: type: Plain text
en: then instead of using the DES machine, I<id> identifies the encryption method used and this then determines how the rest of the password string is interpreted.  The following values of I<id> are supported:
fr: alors au lieu d'utiliser la machine DES, I<id> indique la méthode de chiffrement utilisée et comment le reste de la chaîne de mot de passe est interprétée. Les valeur suivantes sont prises en charge pour I<id> :

note: type: tbl table
en: 2a  | Blowfish (not in mainline glibc; added in some
fr: 2a  | Blowfish (pas dans la glibc officielle ; ajoutée

note: type: tbl table
en:     | Linux distributions)
fr:     | par certaines distributions Linux)

note: openSUSE has Blowfish, but AFAICS, this option is not supported natively by glibc -- mtk, Jul 08 md5 | Sun MD5 glibc doesn't appear to natively support Sun MD5; I don't know if any distros add the support. type: tbl table
en: 5   | SHA-256 (since glibc 2.7)
fr: 5   | SHA-256 (depuis la glibc 2.7)

note: type: tbl table
en: 6   | SHA-512 (since glibc 2.7)
fr: 6   | SHA-512 (depuis la glibc 2.7)

note: type: Plain text
en: So $5$I<salt>$I<encrypted> is an SHA-256 encoded password and $6$I<salt>$I<encrypted> is an SHA-512 encoded one.
fr: Ainsi, $5$I<salt>$I<encrypted> est un mot de passe chiffré SHA-256 et $6$I<salt>$I<encrypted> est un mot de passe SHA-512.

note: type: Plain text
en: "I<salt>" stands for the up to 16 characters following "$I<id>$" in the salt.  The encrypted part of the password string is the actual computed password.  The size of this string is fixed:
fr: « I<salt> » comprend jusqu'à 16 caractères de sel après « $I<id>$ ». La partie I<encrypted> de la chaîne de mot de passe correspond au mot de passe chiffré. La taille de cette chaîne est fixe :

note: type: tbl table
en: MD5     | 22 characters
fr: MD5     | 22 caractères

note: type: tbl table
en: SHA-256 | 43 characters
fr: SHA-256 | 43 caractères

note: type: tbl table
en: SHA-512 | 86 characters
fr: SHA-512 | 86 caractères

note: type: Plain text
en: The characters in "I<salt>" and "I<encrypted>" are drawn from the set [B<a-zA-Z0-9./>].  In the MD5 and SHA implementations the entire I<key> is significant (instead of only the first 8 bytes in DES).
fr: Les caractères de « I<salt> » et « I<encrypted> » sont tiré de l'ensemble [B<a-zA-Z0-9./>]. Dans les implémentations MD5 et SHA, I<key> est utilisé entièrement (au lieu de seulement les 8 premiers octets dans l'implémentation DES).

note: type: TH
en: 2013-10-28
fr: 28 octobre 2013

note: type: Plain text
en: daemon - run in the background
fr: daemon - Exécuter en arrière-plan

note: type: Plain text
en: B<daemon>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ E<lt>\ 500)
fr: B<daemon>()\ : _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ E<lt>\ 500)

note: type: Plain text
en: The B<daemon>()  function is for programs wishing to detach themselves from the controlling terminal and run in the background as system daemons.
fr: La fonction B<daemon>() sert aux programmes désireux de se détacher de leur terminal de contrôle, et de s'exécuter en arrière-plan à la manière des démons système.

note: type: Plain text
en: If I<nochdir> is zero, B<daemon>()  changes the calling process's current working directory to the root directory ("/"); otherwise, the current working directory is left unchanged.
fr: Si I<nochdir> vaut zéro, B<daemon>() change le répertoire de travail du processus appelant pour le répertoire racine («\ /\ »)\ ; sinon le répertoire de travail courant n'est pas changé.

note: type: Plain text
en: If I<noclose> is zero, B<daemon>()  redirects standard input, standard output and standard error to I</dev/null>; otherwise, no changes are made to these file descriptors.
fr: si I<noclose> vaut zéro, B<daemon>() redirige l'entrée standard, la sortie standard, et la sortie d'erreur vers I</dev/null>\ ; sinon aucun changement sur ces descripteurs n'est réalisé.

note: not .IR in order not to underline _ type: Plain text
en: (This function forks, and if the B<fork>(2)  succeeds, the parent calls B<_exit>(2), so that further errors are seen by the child only.)  On success B<daemon>()  returns zero.  If an error occurs, B<daemon>()  returns -1 and sets I<errno> to any of the errors specified for the B<fork>(2)  and B<setsid>(2).
fr: Cette fonction exécute un B<fork>(2), et s'il réussit, le père effectue un B<_exit>(2), ainsi, toutes les erreurs éventuelles apparaissent uniquement du côté du fils. La fonction B<daemon>() renvoie zéro si elle réussit. Si une erreur se produit, elle renvoie -1 et définit la variable globale I<errno> avec l'un des codes d'erreurs indiqués par les fonctions B<fork>(2) et B<setsid>(2).

note: type: Plain text
en: The B<daemon>()  function is thread-safe.
fr: La fonction B<daemon>() est sûre dans un contexte multithread.

note: type: Plain text
en: Not in POSIX.1-2001.  A similar function appears on the BSDs.  The B<daemon>()  function first appeared in 4.4BSD.
fr: Absent de POSIX.1-2001. Une fonction similaire est apparue sur les systèmes BSD. La fonction B<daemon>() est apparue dans BSD\ 4.4.

note: type: Plain text
en: The glibc implementation can also return -1 when I</dev/null> exists but is not a character device with the expected major and minor numbers.  In this case, I<errno> need not be set.
fr: L'implémentation de la glibc peut également renvoyer -1 si I</dev/null> existe et qu'il n'est pas un périphérique caractère, avec les numéros mineur et majeur attendus. Dans ce cas, I<errno> ne sera pas définie.

note: type: TH
en: 2013-09-18
fr: 18 septembre 2013

note: type: Plain text
en: des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED - fast DES encryption
fr: des_crypt, ecb_crypt, cbc_crypt, des_setparity, DES_FAILED - Cryptage DES rapide

note: type: Plain text
en: B<ecb_crypt>()  and B<cbc_crypt>()  implement the NBS DES (Data Encryption Standard).  These routines are faster and more general purpose than B<crypt>(3).  They also are able to utilize DES hardware if it is available.  B<ecb_crypt>()  encrypts in ECB (Electronic Code Book)  mode, which encrypts blocks of data independently.  B<cbc_crypt>()  encrypts in CBC (Cipher Block Chaining)  mode, which chains together successive blocks.  CBC mode protects against insertions, deletions and substitutions of blocks.  Also, regularities in the clear text will not appear in the cipher text.
fr: B<ecb_crypt>() et B<cbc_crypt>() implémentent le standard NBS DES (Data Encryption Standard). Ces routines sont plus rapides et plus générales que la classique B<crypt>(3). Elles sont aussi capables d'utiliser une puce de cryptage DES si elle est disponible. B<ecb_crypt>() encrypte en mode ECB (Electronic Code Book), ce qui encode des blocs de données indépendamment les uns des autres. B<cbc_crypt>() encrypte en mode CBC (Cipher Block Chaining), qui enchaîne le cryptage des blocs successifs. Le mode CBC protège contre les insertions, suppressions ou substitutions de blocs. De plus, les répétitions dans le texte en clair n'apparaîtront pas dans le texte chiffré.

note: type: Plain text
en: Here is how to use these routines.  The first argument, I<key>, is the 8-byte encryption key with parity.  To set the key's parity, which for DES is in the low bit of each byte, use B<des_setparity>().  The second argument, I<data>, contains the data to be encrypted or decrypted.  The third argument, I<datalen>, is the length in bytes of I<data>, which must be a multiple of 8.  The fourth argument, I<mode>, is formed by ORing together some things.  For the encryption direction OR in either B<DES_ENCRYPT> or B<DES_DECRYPT>.  For software versus hardware encryption, OR in either B<DES_HW> or B<DES_SW>.  If B<DES_HW> is specified, and there is no hardware, then the encryption is performed in software and the routine returns B<DESERR_NOHWDEVICE>.  For B<cbc_crypt>(), the argument I<ivec> is the 8-byte initialization vector for the chaining.  It is updated to the next initialization vector upon return.
fr: Voici comment utiliser ces routines. Le premier paramètre, I<key>, est la clé de codage de 8 octets avec parité. Pour définir la parité de la clé, qui pour DES est le bit de poids faible de chaque octet, utilisez B<des_setparity>(). Le second paramètre, I<data>, contient les données à crypter ou à décrypter. Le troisième paramètre, I<datalen>, est la longueur en octets de I<data>, qui doit être un multiple de 8. Le quatrième paramètre, I<mode>, est formé par un OU binaire entre différents attributs. Pour le sens de fonctionnement, il faut mettre B<DES_ENCRYPT> ou B<DES_DECRYPT>. Pour l'encryptage matériel ou logiciel, il faut ajouter B<DES_HW> ou B<DES_SW>. Si B<DES_HW> est indiqué et qu'il n'y a pas de matériel spécialisé disponible, le cryptage est réalisé en mode logiciel et la routine renvoie B<DESERR_NOHWDEVICE>. Pour B<cbc_crypt>(), le paramètre I<ivec> est un vecteur d'initialisation de 8 octets pour le chaînage. Il est mis à jour avec le prochain vecteur d'initialisation au retour.

note: type: Plain text
en: No error.
fr: Pas d'erreur.

note: type: Plain text
en: Encryption succeeded, but done in software instead of the requested hardware.
fr: Cryptage réussi, mais en mode logiciel plutôt que matériel.

note: type: Plain text
en: An error occurred in the hardware or driver.
fr: Une erreur s'est produite dans le matériel ou le pilote.

note: type: Plain text
en: Bad argument to routine.
fr: Mauvais paramètre pour la routine.

note: .BR DES_FAILED\c .BR ( stat ) So far the Sun page Some additions - aeb type: Plain text
en: Given a result status I<stat>, the macro B<DES_FAILED(>I<stat>B<)> is false only for the first two statuses.
fr: Étant donné un résultat I<stat>, la macro B<DES_FAILED(>I<stat>B<)> est fausse pour les deux premiers états.

note: type: Plain text
en: These routines are present in libc 4.6.27 and later, and in glibc 2.1 and later.
fr: Ces routines sont présentes dans la libc\ 4.6.27 et ultérieures, et dans la glibc\ 2.1 et ultérieures.

note: type: Plain text
en: The B<ecb_crypt>(), B<cbc_crypt>(), and B<des_setparity>()  functions are thread-safe.
fr: Les fonctions B<ecb_crypt>() et B<cbc_crypt>() et B<des_setparity>() sont sûres dans un contexte multithread.

note: type: Plain text
en: 4.3BSD.  Not in POSIX.1-2001.
fr: BSD\ 4.3. Absent de POSIX.1-2001.

note: type: TH
en: 2012-02-14
fr: 14 février 2012

note: type: Plain text
en: dup, dup2, dup3 - duplicate a file descriptor
fr: dup, dup2, dup3 - Dupliquer un descripteur de fichier

note: type: Plain text
en: B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */
    B<#include E<lt>fcntl.hE<gt>>              /* Obtain O_* constant definitions */
    B<#include E<lt>unistd.hE<gt>>
fr: B<#define _GNU_SOURCE>             /* Consultez feature_test_macros(7) */
    B<#include E<lt>fcntl.hE<gt>>      /* Définitions des constantes O_*   */
    B<#include E<lt>unistd.hE<gt>>

note: type: Plain text
en: These system calls create a copy of the file descriptor I<oldfd>.
fr: Ces appels système créent une copie du descripteur de fichier I<oldfd>.

note: type: Plain text
en: B<dup>()  uses the lowest-numbered unused descriptor for the new descriptor.
fr: B<dup>() utilise le plus petit numéro inutilisé pour le nouveau descripteur.

note: type: Plain text
en: B<dup2>()  makes I<newfd> be the copy of I<oldfd>, closing I<newfd> first if necessary, but note the following:
fr: B<dup2>() transforme I<newfd> en une copie de I<oldfd>, fermant auparavant I<newfd> si besoin est, mais prenez note des points suivants.

note: type: Plain text
en: If I<oldfd> is not a valid file descriptor, then the call fails, and I<newfd> is not closed.
fr: Si I<oldfd> n'est pas un descripteur de fichier valable, alors l'appel échoue et I<newfd> n'est pas fermé.

note: type: Plain text
en: If I<oldfd> is a valid file descriptor, and I<newfd> has the same value as I<oldfd>, then B<dup2>()  does nothing, and returns I<newfd>.
fr: Si I<oldfd> est un descripteur de fichier valable et I<newfd> a la même valeur que I<oldfd>, alors B<dup2>() ne fait rien et renvoie I<newfd>.

note: type: Plain text
en: After a successful return from one of these system calls, the old and new file descriptors may be used interchangeably.  They refer to the same open file description (see B<open>(2))  and thus share file offset and file status flags; for example, if the file offset is modified by using B<lseek>(2)  on one of the descriptors, the offset is also changed for the other.
fr: Après un appel réussi à l'un de ces appels système, l'ancien et le nouveau descripteurs peuvent être utilisés de manière interchangeable. Ils référencent la même description de fichier ouvert (consultez B<open>(2)) et ainsi partagent les pointeurs de position et les drapeaux. Par exemple, si le pointeur de position est modifié en utilisant B<lseek>(2) sur l'un des descripteurs, la position est également changée pour l'autre.

note: type: Plain text
en: The two descriptors do not share file descriptor flags (the close-on-exec flag).  The close-on-exec flag (B<FD_CLOEXEC>; see B<fcntl>(2))  for the duplicate descriptor is off.
fr: Les deux descripteurs ne partagent toutefois pas l'attribut close\(hyon\(hyexec. L'attribut close\(hyon\(hyexec (B<FD_CLOEXEC>\ ; consultez B<fcntl>(2)) de la copie est désactivé, ce qui signifie qu'il ne sera pas fermé lors d'un exec().

note: type: Plain text
en: B<dup3>()  is the same as B<dup2>(), except that:
fr: B<dup3>() est identique à B<dup2>(), à l'exception de :

note: type: Plain text
en: The caller can force the close-on-exec flag to be set for the new file descriptor by specifying B<O_CLOEXEC> in I<flags>.  See the description of the same flag in B<open>(2)  for reasons why this may be useful.
fr: L'appelant peut forcer l'attribut close-on-exec à être positionné pour le nouveau descripteur de fichier en ajoutant B<O_CLOEXEC> dans I<flags>. Consultez la description de cet attribut dans B<open>(2) pour savoir pourquoi cela peut être utile.

note: FIXME . To confirm with Al Viro that this was intended, and its rationale type: Plain text
en: If I<oldfd> equals I<newfd>, then B<dup3>()  fails with the error B<EINVAL>.
fr: Si I<oldfd> est égal à I<newfd>, alors B<dup3>() échoue avec l'erreur B<EINVAL>.

note: type: Plain text
en: On success, these system calls return the new descriptor.  On error, -1 is returned, and I<errno> is set appropriately.
fr: Ces appels système renvoient le nouveau descripteur en cas de succès, ou -1 en cas d'échec, auquel cas I<errno> contient le code d'erreur.

note: type: Plain text
en: I<oldfd> isn't an open file descriptor, or I<newfd> is out of the allowed range for file descriptors.
fr: I<oldfd> n'est pas un descripteur de fichier ouvert, ou I<newfd> n'est pas dans les valeurs autorisées pour un descripteur.

note: type: Plain text
en: (Linux only) This may be returned by B<dup2>()  or B<dup3>()  during a race condition with B<open>(2)  and B<dup>().
fr: (Linux seulement) Cette valeur peut être renvoyée par B<dup2>() ou B<dup3>() lors d'une concurrence critique avec B<open>(2) et B<dup>().

note: type: Plain text
en: The B<dup2>()  or B<dup3>()  call was interrupted by a signal; see B<signal>(7).
fr: L'appel B<dup2>() ou B<dup3>() a été interrompu par un signal ; consultez B<signal>(7).

note: FIXME . To confirm with Al Viro that this was intended, and its rationale type: Plain text
en: (B<dup3>())  I<flags> contain an invalid value.  Or, I<oldfd> was equal to I<newfd>.
fr: (B<dup3>()) I<flags> contient une valeur incorrecte. Ou I<oldfd> était égal à I<newfd>.

note: type: Plain text
en: The process already has the maximum number of file descriptors open and tried to open a new one.
fr: Le processus dispose déjà du nombre maximal de descripteurs de fichier autorisés simultanément, et tente d'en ouvrir un nouveau.

note: type: Plain text
en: B<dup3>()  was added to Linux in version 2.6.27; glibc support is available starting with version 2.9.
fr: B<dup3>() a été ajouté dans Linux dans la version 2.6.27 ; sa prise en charge dans la glibc est disponible à partir de la version 2.9.

note: type: Plain text
en: B<dup>(), B<dup2>(): SVr4, 4.3BSD, POSIX.1-2001.
fr: B<dup>(), B<dup2>() : SVr4, BSD\ 4.3, POSIX.1-2001.

note: SVr4 documents additional EINTR and ENOLINK error conditions.  POSIX.1 adds EINTR. The EBUSY return is Linux-specific. type: Plain text
en: B<dup3>()  is Linux-specific.
fr: B<dup3>() est spécifique à Linux.

note: type: Plain text
en: The error returned by B<dup2>()  is different from that returned by B<fcntl(>..., B<F_DUPFD>, ...B<)> when I<newfd> is out of range.  On some systems B<dup2>()  also sometimes returns B<EINVAL> like B<F_DUPFD>.
fr: Les erreurs renvoyées par B<dup2>() sont différentes de celles retournées par B<fcntl(>..., B<F_DUPFD>, ...B<)> si I<newfd> n'est pas dans les valeurs autorisées. Sur certains systèmes B<dup2> retourne aussi parfois B<EINVAL> comme B<F_DUPFD>.

note: type: Plain text
en: If I<newfd> was open, any errors that would have been reported at B<close>(2)  time are lost.  A careful programmer will not use B<dup2>()  or B<dup3>()  without closing I<newfd> first.
fr: Si I<newfd> était ouvert, toutes les erreurs susceptibles d'être rapportées par B<close>(2) sont perdues. Un programmeur soigneux n'utilisera pas B<dup2>() ou B<dup3>() sans fermer I<newfd> d'abord.

note: type: TH
en: 2013-07-22
fr: 22 juillet 2013

note: type: Plain text
en: encrypt, setkey, encrypt_r, setkey_r - encrypt 64-bit messages
fr: encrypt, setkey, encrypt_r, setkey_r - Crypter des messages de 64\ bits

note: type: Plain text
en: B<#define _XOPEN_SOURCE> /* See feature_test_macros(7) */
fr: B<#define _XOPEN_SOURCE> /* Consultez feature_test_macros(7) */

note: type: Plain text
en: B<#define _GNU_SOURCE> /* See feature_test_macros(7) */
fr: B<#define _GNU_SOURCE> /* Consultez feature_test_macros(7) */

note: type: Plain text
en: Each of these requires linking with I<-lcrypt>.
fr: Effectuez l'édition des liens avec l'option I<-lcrypt>.

note: type: Plain text
en: These functions encrypt and decrypt 64-bit messages.  The B<setkey>()  function sets the key used by B<encrypt>().  The I<key> argument used here is an array of 64 bytes, each of which has numerical value 1 or 0.  The bytes key[n] where n=8*i-1 are ignored, so that the effective key length is 56 bits.
fr: Ces fonctions chiffrent et déchiffrent des messages de 64\ bits. La fonction B<setkey>() permet de fournir la clef à utiliser pour B<encrypt>(). L'argument I<key> est une table de 64 octets, chacun ayant la valeur 0 ou 1. L'octet key[n] où n=8*i-1 est ignoré, ce qui ramène la clef à 56 bits effectifs.

note: type: Plain text
en: The B<encrypt>()  function modifies the passed buffer, encoding if I<edflag> is 0, and decoding if 1 is being passed.  Like the I<key> argument, also I<block> is a bit vector representation of the actual value that is encoded.  The result is returned in that same vector.
fr: La fonction B<encrypt>() modifie le tampon transmis, en l'encodant si l'argument I<edflag> vaut 0, et en le décodant s'il vaut 1. L'argument I<block> est, comme l'argument I<key>, une représentation de la valeur à encoder sous forme de vecteur de bits. Le résultat est renvoyé dans le même vecteur.

note: type: Plain text
en: These two functions are not reentrant, that is, the key data is kept in static storage.  The functions B<setkey_r>()  and B<encrypt_r>()  are the reentrant versions.  They use the following structure to hold the key data:
fr: Ces fonctions ne sont pas réentrantes, c'est-à-dire que la clef est stockée dans une zone de stockage statique. Les fonctions B<setkey_r>() et B<encrypt_r>() sont des versions réentrantes. Elles utilisent la structure suivante pour contenir la clef\ :

note: type: Plain text
en: Before calling B<setkey_r>()  set I<data-E<gt>initialized> to zero.
fr: Avant d'appeler B<setkey_r>(), définissez I<data-E<gt>initialized> à zéro.

note: type: Plain text
en: These functions do not return any value.
fr: Ces routines ne renvoient pas de valeur.

note: type: Plain text
en: Set I<errno> to zero before calling the above functions.  On success, it is unchanged.
fr: Définissez I<errno> à zéro avant d'appeler les fonctions ci-dessus. Si elles réussissent, I<errno> n'est pas modifiée.

note: type: Plain text
en: The function is not provided.  (For example because of former USA export restrictions.)
fr: La fonction n'est pas disponible. (Par exemple à cause des restrictions américaines sur l'exportation de routines cryptographiques...)

note: type: Plain text
en: The B<encrypt>()  and B<setkey>()  functions are not thread-safe.
fr: Les fonctions B<encrypt>() et B<setkey>() ne sont pas sûres dans un contexte multithread.

note: type: Plain text
en: The B<encrypt_r>()  and B<setkey_r>()  functions are thread-safe.
fr: Les fonctions B<encrypt_r>() et B<setkey_r>() sont sûres dans un contexte multithread.

note: type: Plain text
en: The functions B<encrypt>()  and B<setkey>()  conform to SVr4, SUSv2, and POSIX.1-2001.  The functions B<encrypt_r>()  and B<setkey_r>()  are GNU extensions.
fr: Les fonctions B<encrypt>() et B<setkey>() sont conformes à SVr4, SUSv2, et POSIX.1-2001. Les fonctions B<encrypt_r>() et B<setkey_r>() sont des extensions GNU.

note: type: Plain text
en: In glibc 2.2 these functions use the DES algorithm.
fr: Dans la glibc\ 2.2, ces fonctions utilisent l'algorithme DES.

note: type: Plain text
en: You need to link with libcrypt to compile this example with glibc.  To do useful work the I<key[]> and I<txt[]> arrays must be filled with a useful bit pattern.
fr: Il faut lier cet exemple avec la bibliothèque libcrypt pour le compiler avec la glibc. Pour servir à quelque chose, les tables I<key[]> et I<txt[]> devraient être initialisées avec des valeurs significatives.

note: type: TH
en: 2014-01-18
fr: 18 janvier 2014

note: type: Plain text
en: environ - user environment
fr: environ - Environnement utilisateur

note: type: Plain text
en: The variable I<environ> points to an array of pointers to strings called the "environment".  The last pointer in this array has the value NULL.  (This variable must be declared in the user program, but is declared in the header file I<E<lt>unistd.hE<gt>> in case the header files came from libc4 or libc5, and in case they came from glibc and B<_GNU_SOURCE> was defined.)  This array of strings is made available to the process by the B<exec>(3)  call that started the process.
fr: La variable I<environ> pointe sur un tableau de pointeurs de chaînes que l'on nomme «\ environnement\ ». Le dernier pointeur de ce tableau vaut NULL. (Cette variable doit être déclarée dans les programmes utilisateurs, mais elle est déclarée dans le fichier d'en\(hytête I<E<lt>unistd.hE<gt>> avec libc4 et libc5, ou bien avec glibc si B<_GNU_SOURCE> est définie.) Ce tableau de chaînes de caractères est fourni au processus par l'appel B<exec>(3) qui démarre le processus.

note: type: Plain text
en: By convention the strings in I<environ> have the form "I<name>B<=>I<value>".  Common examples are:
fr: Par convention, ces chaînes sont de la forme «\ I<nom>B<=>I<valeur>\ ». Des exemples classiques sont\ :

note: type: Plain text
en: The name of the logged-in user (used by some BSD-derived programs).
fr: Le nom de l'utilisateur connecté (utilisé par des programmes de style BSD).

note: type: Plain text
en: The name of the logged-in user (used by some System-V derived programs).
fr: Le nom de l'utilisateur connecté (utilisé par certains programmes de style System V).

note: type: Plain text
en: A user's login directory, set by B<login>(1)  from the password file B<passwd>(5).
fr: Le répertoire de login d'un utilisateur, mis en place par B<login>(1) depuis le fichier B<passwd>(5).

note: type: Plain text
en: The name of a locale to use for locale categories when not overridden by B<LC_ALL> or more specific environment variables such as B<LC_COLLATE>, B<LC_CTYPE>, B<LC_MESSAGES>, B<LC_MONETARY>, B<LC_NUMERIC>, and B<LC_TIME> (see B<locale>(7)  for further details of the B<LC_*> environment variables).
fr: Le nom de la localisation à utiliser pour les catégories non indiquées par B<LC_ALL> ou une variable d'environnement spécifique telle que B<LC_COLLATE>, B<LC_CTYPE>, B<LC_MESSAGES>, B<LC_MONETARY>, B<LC_NUMERIC>, B<LC_TIME>, consultez B<locale>(5).

note: type: Plain text
en: The sequence of directory prefixes that B<sh>(1)  and many other programs apply in searching for a file known by an incomplete pathname.  The prefixes are separated by \(aqB<:>\(aq.  (Similarly one has B<CDPATH> used by some shells to find the target of a change directory command, B<MANPATH> used by B<man>(1)  to find manual pages, and so on)
fr: Une liste de répertoires que B<sh>(1) et de nombreux autres programmes utilisent pour trouver un fichier dont le chemin est incomplet. Les répertoires sont séparés par des «\ :\ ». (De même, il existe B<CDPATH> qui est utilisé par certains interpréteurs de commandes pour connaître le chemin de destination d'une commande cd, B<MANPATH> utilisé par B<man>(1) pour trouver les pages de manuel, etc.)

note: type: Plain text
en: The current working directory.  Set by some shells.
fr: Le répertoire de travail actuel, renseigné par certains interpréteurs de commandes.

note: type: Plain text
en: The pathname of the user's login shell.
fr: Le nom de fichier de l'interpréteur de commandes de l'utilisateur.

note: type: Plain text
en: The terminal type for which output is to be prepared.
fr: Le type de terminal utilisé pour les affichages.

note: type: Plain text
en: The user's preferred utility to display text files.
fr: L'application préférée de l'utilisateur pour afficher du texte.

note: .TP .B BROWSER The user's preferred utility to browse URLs. Sequence of colon-separated browser commands. See http://www.catb.org/~esr/BROWSER/ . type: Plain text
en: The user's preferred utility to edit text files.
fr: L'application préférée de l'utilisateur pour modifier des textes.

note: type: Plain text
en: Further names may be placed in the environment by the I<export> command and "name=value" in B<sh>(1), or by the I<setenv> command if you use B<csh>(1).  Arguments may also be placed in the environment at the point of an B<exec>(3).  A C program can manipulate its environment using the functions B<getenv>(3), B<putenv>(3), B<setenv>(3), and B<unsetenv>(3).
fr: D'autres noms peuvent être inscrits dans l'environnement par la commande I<export> avec la syntaxe «\ nom=valeur\ » sous B<sh>(1), ou par la commande I<setenv> avec B<csh>(1). Des arguments peuvent aussi être insérés dans l'environnement lors d'un B<exec>(3). Un programme C peut manipuler son environnement avec les fonctions B<getenv>(3), B<putenv>(3), B<setenv>(3) et B<unsetenv>(3).

note: type: Plain text
en: Note that the behavior of many programs and library routines is influenced by the presence or value of certain environment variables.  A random collection:
fr: Remarquez que le comportement de nombreux programmes ou routines de bibliothèque est influencé par la présence ou la valeur de certaines variables d'environnement. En voici quelques exemples\ :

note: type: Plain text
en: The variables B<LANG>, B<LANGUAGE>, B<NLSPATH>, B<LOCPATH>, B<LC_ALL>, B<LC_MESSAGES>, and so on influence locale handling; see B<catopen>(3), B<gettext>(3), and B<locale>(7).
fr: Les variables B<LANG>, B<LANGUAGE>, B<NLSPATH>, B<LOCPATH>, B<LC_ALL>, B<LC_MESSAGES>, etc. influencent la localisation, consultez B<locale>(5).

note: type: Plain text
en: B<TMPDIR> influences the path prefix of names created by B<tmpnam>(3)  and other routines, and the temporary directory used by B<sort>(1)  and other programs.
fr: B<TMPDIR> modifie le préfixe de chemin d'accès des fichiers créés par B<tmpnam>(3) et d'autres fonctions, et le répertoire temporaire utilisé par B<sort>(1) et d'autres programmes.

note: type: Plain text
en: B<LD_LIBRARY_PATH>, B<LD_PRELOAD> and other LD_* variables influence the behavior of the dynamic loader/linker.
fr: B<LD_LIBRARY_PATH>, B<LD_PRELOAD> et d'autres variables LD_* modifient le comportement de l'éditeur de lien dynamique.

note: type: Plain text
en: B<POSIXLY_CORRECT> makes certain programs and library routines follow the prescriptions of POSIX.
fr: B<POSIXLY_CORRECT> oblige certains programmes ou routines à respecter scrupuleusement la norme POSIX.

note: type: Plain text
en: The behavior of B<malloc>(3)  is influenced by B<MALLOC_*> variables.
fr: Le comportement de B<malloc>(3) est influencé par les variables B<MALLOC_*>.

note: type: Plain text
en: The variable B<HOSTALIASES> gives the name of a file containing aliases to be used with B<gethostbyname>(3).
fr: La variable B<HOSTALIASES> fournit le nom du fichier d'alias consulté par B<gethostbyname>(3).

note: type: Plain text
en: B<TZ> and B<TZDIR> give timezone information used by B<tzset>(3)  and through that by functions like B<ctime>(3), B<localtime>(3), B<mktime>(3), B<strftime>(3).  See also B<tzselect>(8).
fr: B<TZ> et B<TZDIR> gèrent les informations sur les fuseaux horaires utilisées par B<tzset>(3) et donc par les fonctions comme B<ctime>(3), B<localtime>(3), B<mktime>(3), B<strftime>(3). Consultez aussi B<tzselect>(8).

note: type: Plain text
en: B<TERMCAP> gives information on how to address a given terminal (or gives the name of a file containing such information).
fr: B<TERMCAP> donne des indications sur la manière de traiter le terminal (ou donne le nom d'un fichier contenant ces spécifications).

note: type: Plain text
en: B<COLUMNS> and B<LINES> tell applications about the window size, possibly overriding the actual size.
fr: B<COLUMNS> et B<LINES> indiquent aux applications la taille de la fenêtre, éventuellement avec préséance sur la taille réelle.

note: type: Plain text
en: B<PRINTER> or B<LPDEST> may specify the desired printer to use.  See B<lpr>(1).
fr: B<PRINTER> ou B<LPDEST> indiquent l'imprimante à utiliser. Consultez B<lpr>(1).

note: type: Plain text
en: Clearly there is a security risk here.  Many a system command has been tricked into mischief by a user who specified unusual values for B<IFS> or B<LD_LIBRARY_PATH>.
fr: Il est clair qu'il y a un risque concernant la sécurité. De nombreuses commandes système peuvent être induites en erreur par un utilisateur qui fournirait des valeurs inhabituelles pour B<IFS> ou B<LD_LIBRARY_PATH>.

note: type: Plain text
en: There is also the risk of name space pollution.  Programs like I<make> and I<autoconf> allow overriding of default utility names from the environment with similarly named variables in all caps.  Thus one uses B<CC> to select the desired C compiler (and similarly B<MAKE>, B<AR>, B<AS>, B<FC>, B<LD>, B<LEX>, B<RM>, B<YACC>, etc.).  However, in some traditional uses such an environment variable gives options for the program instead of a pathname.  Thus, one has B<MORE>, B<LESS>, and B<GZIP>.  Such usage is considered mistaken, and to be avoided in new programs.  The authors of I<gzip> should consider renaming their option to B<GZIP_OPT>.
fr: Il y a aussi un risque de pollution de l'espace des noms. Des programmes comme I<make> et I<autoconf> permettent la surcharge des noms d'utilitaires par défaut par des variables d'environnement avec le même nom en majuscules. Ainsi, on peut utiliser B<CC> pour choisir le compilateur C (et de même B<MAKE>, B<AR>, B<AS>, B<FC>, B<LD>, B<LEX>, B<RM>, B<YACC>, etc.). Toutefois dans certains cas, ces variables fournissent des paramètres à certains programmes plutôt qu'un nom d'utilitaire. Ainsi, il existe B<MORE>, B<LESS>, ou B<GZIP>. De telles utilisations sont considérées comme des erreurs, et doivent être évitées dans les nouveaux programmes. Les auteurs de I<gzip> devraient penser à renommer leur option B<GZIP_OPT>.

note: type: TH
en: 2013-09-25
fr: 25 septembre 2013

note: type: Plain text
en: euidaccess, eaccess - check effective user's permissions for a file
fr: euidaccess, eaccess - Vérifier les permissions utilisateur d'un fichier

note: type: Plain text
en: B<#define _GNU_SOURCE>             /* See feature_test_macros(7) */
    B<#include E<lt>unistd.hE<gt>>
fr: B<#define _GNU_SOURCE>             /* Consultez feature_test_macros(7) */
    B<#include E<lt>unistd.hE<gt>>

note: type: Plain text
en: Like B<access>(2), B<euidaccess>()  checks permissions and existence of the file identified by its argument I<pathname>.  However, whereas B<access>(2), performs checks using the real user and group identifiers of the process, B<euidaccess>()  uses the effective identifiers.
fr: Comme B<access>(2), B<euidaccess>() vérifie les permissions et l'existence du fichier identifié par I<pathname>. Cependant, là où B<access>(2) effectue une vérification avec les identifiants réels d'utilisateur et de groupe du processus, B<euidaccess>() utilise les identifiants effectifs.

note: type: Plain text
en: I<mode> is a mask consisting of one or more of B<R_OK>, B<W_OK>, B<X_OK>, and B<F_OK>, with the same meanings as for B<access>(2).
fr: I<mode> est un masque constitué d'un ou plusieurs attributs B<R_OK>, B<W_OK>, B<X_OK> et B<F_OK> qui ont le même sens qu'avec B<access>(2).

note: type: Plain text
en: B<eaccess>()  is a synonym for B<euidaccess>(), provided for compatibility with some other systems.
fr: B<eaccess>() est un synonyme de B<euidaccess>(), fourni par compatibilité avec d'autres systèmes.

note: type: Plain text
en: On success (all requested permissions granted), zero is returned.  On error (at least one bit in I<mode> asked for a permission that is denied, or some other error occurred), -1 is returned, and I<errno> is set appropriately.
fr: En cas de succès (toutes les permissions demandées sont autorisées), 0 est renvoyé. En cas d'erreur (au moins une permission de I<mode> est interdite ou d'autres erreurs se sont produites), -1 est renvoyé et I<errno> contient le code d'erreur.

note: type: Plain text
en: As for B<access>(2).
fr: Identique à B<access>(2).

note: type: Plain text
en: The B<eaccess>()  function was added to glibc in version 2.4.
fr: La fonction B<eaccess>() a été ajoutée à la version 2.4 de la glibc.

note: type: Plain text
en: The B<euidaccess>()  and B<eaccess>()  functions are thread-safe.
fr: Les fonctions B<euidaccess>() et B<eaccess>() sont sûres dans un contexte multithread.

note: e.g., FreeBSD 6.1. type: Plain text
en: These functions are nonstandard.  Some other systems have an B<eaccess>()  function.
fr: Ces fonctions ne sont pas standards. Quelques autres systèmes possèdent la fonction B<eaccess>().

note: type: Plain text
en: I<Warning>: Using this function to check a process's permissions on a file before performing some operation based on that information leads to race conditions: the file permissions may change between the two steps.  Generally, it is safer just to attempt the desired operation and handle any permission error that occurs.
fr: I<Attention> : l'utilisation de cette fonction pour vérifier les permissions d'un processus sur un fichier avant d'effectuer quelques opérations basées sur cette information conduit à une situation de compétition (« race condition ») : les permissions du fichier peuvent changer entre les deux étapes. Généralement, il est plus judicieux d'exécuter l'opération souhaitée et de gérer toutes les erreurs de permissions qui se produisent.

note: type: Plain text
en: This function always dereferences symbolic links.  If you need to check the permissions on a symbolic link, use B<faccessat>(2)  with the flags B<AT_EACCESS> and B<AT_SYMLINK_NOFOLLOW>.
fr: Cette fonction déférence toujours les liens symboliques. Si vous devez vérifier les permissions d'un lien symbolique, utilisez B<faccessat>(2) avec les drapeaux B<AT_EACCESS> et B<AT_SYMLINK_NOFOLLOW>.

note: type: TH
en: 2010-09-25
fr: 25 septembre 2010

note: type: Plain text
en: execl, execlp, execle, execv, execvp, execvpe - execute a file
fr: execl, execlp, execle, execv, execvp, execvpe - Exécuter un fichier

note: type: Plain text
en: B<execvpe>(): _GNU_SOURCE
fr: B<execvpe>()\ : _GNU_SOURCE

note: type: Plain text
en: The B<exec>()  family of functions replaces the current process image with a new process image.  The functions described in this manual page are front-ends for B<execve>(2).  (See the manual page for B<execve>(2)  for further details about the replacement of the current process image.)
fr: La famille des fonctions B<exec>() remplace l'image du processus en cours par une nouvelle image du processus. Les fonctions décrites dans cette page sont en réalité des frontaux pour B<execve>(2) (consultez la page de manuel de B<execve>(2) pour plus de détails sur le remplacement de l'image du processus en cours).

note: type: Plain text
en: The initial argument for these functions is the name of a file that is to be executed.
fr: L'argument initial de toutes ces fonctions est le chemin d'accès du fichier à exécuter.

note: type: Plain text
en: The I<const char\ *arg> and subsequent ellipses in the B<execl>(), B<execlp>(), and B<execle>()  functions can be thought of as I<arg0>, I<arg1>, \&..., I<argn>.  Together they describe a list of one or more pointers to null-terminated strings that represent the argument list available to the executed program.  The first argument, by convention, should point to the filename associated with the file being executed.  The list of arguments I<must> be terminated by a null pointer, and, since these are variadic functions, this pointer must be cast I<(char\ *) NULL>.
fr: Les arguments I<const char\ *arg> ainsi que les points de suspension des fonctions B<execl>(), B<execlp>(), et B<execle>() peuvent être vues comme I<arg0>, I<arg1>, \&..., I<argn>. Ensemble, ils décrivent une liste d'un ou plusieurs pointeurs sur des chaînes de caractères terminées par des caractères nuls, qui constituent les arguments disponibles pour le programme à exécuter. Par convention, le premier argument doit pointer sur le nom du fichier associé au programme à exécuter. La liste des arguments I<doit> se terminer par un pointeur NULL, et puisque ce sont des fonctions variadiques, ce pointeur doit être transtypé avec I<(char\ *) NULL>.

note: type: Plain text
en: The B<execv>(), B<execvp>(), and B<execvpe>()  functions provide an array of pointers to null-terminated strings that represent the argument list available to the new program.  The first argument, by convention, should point to the filename associated with the file being executed.  The array of pointers I<must> be terminated by a null pointer.
fr: Les fonctions B<execv>(), B<execvp>() et B<execvpe>() utilisent un tableau de pointeurs sur des chaînes de caractères terminées par des caractères nuls, qui constituent les arguments disponibles pour le programme à exécuter. Par convention, le premier argument doit pointer sur le nom du fichier associé au programme à exécuter. Le tableau de pointeurs I<doit> se terminer par un pointeur NULL.

note: type: Plain text
en: The B<execle>()  and B<execvpe>()  functions allow the caller to specify the environment of the executed program via the argument I<envp>.  The I<envp> argument is an array of pointers to null-terminated strings and I<must> be terminated by a null pointer.  The other functions take the environment for the new process image from the external variable I<environ> in the calling process.
fr: Les fonctions B<execle>() et B<execvpe>() permettent à l'appelant d'indiquer l'environnement du processus à exécuter à l’aide du paramètre I<envp>. Ce paramètre est un tableau de pointeurs sur des chaînes de caractères terminées par des caractères nuls, qui I<doit> se terminer par un pointeur NULL. Les autres fonctions fournissent au nouveau processus l'environnement constitué par la variable externe I<environ> du processus appelant.

note: type: SS
en: Special semantics for execlp() and execvp()
fr: Sémantique particulière pour execlp() et execvp()

note: type: Plain text
en: The B<execlp>(), B<execvp>(), and B<execvpe>()  functions duplicate the actions of the shell in searching for an executable file if the specified filename does not contain a slash (/) character.  The file is sought in the colon-separated list of directory pathnames specified in the B<PATH> environment variable.  If this variable isn't defined, the path list defaults to the current directory followed by the list of directories returned by I<confstr(_CS_PATH)>.  (This B<confstr>(3)  call typically returns the value "/bin:/usr/bin".)
fr: Les fonctions B<execlp>(), B<execvp>() et B<execvpe>() dupliqueront les actions de l'interpréteur de commandes dans la recherche du fichier exécutable si le nom fourni ne contient pas de barre oblique «\ /\ ». Le fichier est recherché dans la liste de répertoires, séparés par des deux-points, indiquée dans la variable d'environnement B<PATH>. Si cette variable n'est pas définie, le chemin par défaut sera le répertoire actuel, suivi de la liste des répertoires renvoyée par I<confstr(_CS_PATH)> (cet appel à B<confstr>(3) renvoie habituellement «\ /bin:/usr/bin:\ »).

note: type: Plain text
en: If the specified filename includes a slash character, then B<PATH> is ignored, and the file at the specified pathname is executed.
fr: Si le nom du fichier indiqué inclut une barre oblique, alors B<PATH> est ignoré et le fichier dont le chemin est fourni est exécuté.

note: type: Plain text
en: In addition, certain errors are treated specially.
fr: De plus, certaines erreurs sont traitées de manière spécifique.

note: type: Plain text
en: If permission is denied for a file (the attempted B<execve>(2)  failed with the error B<EACCES>), these functions will continue searching the rest of the search path.  If no other file is found, however, they will return with I<errno> set to B<EACCES>.
fr: Si l'accès au fichier est refusé (B<execve>(2) renvoie B<EACCES>), ces fonctions continueront à parcourir le reste du chemin de recherche. Si aucun fichier n'est trouvé, elles reviendront, et I<errno> sera défini à B<EACCES>.

note: type: Plain text
en: If the header of a file isn't recognized (the attempted B<execve>(2)  failed with the error B<ENOEXEC>), these functions will execute the shell (I</bin/sh>)  with the path of the file as its first argument.  (If this attempt fails, no further searching is done.)
fr: Si l'en-tête d'un fichier n'est pas reconnu (B<execve>(2) renvoie B<ENOEXEC>), ces fonctions exécuteront un interpréteur de commandes (I</bin/sh>) avec le chemin d'accès au fichier en tant que premier argument. Si ceci échoue, aucune recherche supplémentaire n'est effectuée.

note: type: Plain text
en: The B<exec>()  functions return only if an error has occurred.  The return value is -1, and I<errno> is set to indicate the error.
fr: Une sortie des fonctions B<exec>() n'intervient que si une erreur s'est produite. La valeur de retour est -1, et I<errno> contient le code d'erreur.

note: type: Plain text
en: All of these functions may fail and set I<errno> for any of the errors specified for B<execve>(2).
fr: Toutes ces fonctions peuvent échouer et définir I<errno> à n'importe quelle erreur décrite dans B<execve>(2).

note: type: Plain text
en: The B<execvpe>()  function first appeared in glibc 2.11.
fr: La fonction B<execvpe>() a été introduite dans la glibc 2.11.

note: type: Plain text
en: The B<execvpe>()  function is a GNU extension.
fr: La fonction B<execvpe>() est une extension GNU.

note: type: Plain text
en: On some other systems, the default path (used when the environment does not contain the variable B<PATH>) has the current working directory listed after I</bin> and I</usr/bin>, as an anti-Trojan-horse measure.  Linux uses here the traditional "current directory first" default path.
fr: Sur certains systèmes, le chemin de recherche par défaut (employé si l'environnement ne contient pas la variable B<PATH>) contient le répertoire courant à la suite de I</bin> et I</usr/bin>, afin d'éviter les chevaux de Troie. Linux utilise encore le répertoire courant en premier dans ce chemin de recherche par défaut.

note: type: Plain text
en: The behavior of B<execlp>()  and B<execvp>()  when errors occur while attempting to execute the file is historic practice, but has not traditionally been documented and is not specified by the POSIX standard.  BSD (and possibly other systems) do an automatic sleep and retry if B<ETXTBSY> is encountered.  Linux treats it as a hard error and returns immediately.
fr: Le comportement de B<execlp>() et B<execvp>() lorsqu'une erreur se produit pendant l'exécution d'un programme est une pratique historique mais n'a traditionnellement jamais été documenté, ni spécifié dans la norme POSIX. Lorsque B<ETXTBSY> est rencontré, BSD (et peut-être d'autres systèmes) endorment le processus appelant puis réitère l'opération. Linux considère cette situation comme une erreur grave, et revient immédiatement.

note: type: Plain text
en: Traditionally, the functions B<execlp>()  and B<execvp>()  ignored all errors except for the ones described above and B<ENOMEM> and B<E2BIG>, upon which they returned.  They now return if any error other than the ones described above occurs.
fr: Habituellement, les fonctions B<execlp>() et B<execvp>() ignoraient toutes les erreurs sauf celles décrites ci-dessus, B<ENOMEM> et B<E2BIG>. Désormais, elles reviennent à l'appelant si une autre erreur que celles-ci se produit.

note: type: TH
en: 2014-01-08
fr: 8 janvier 2014

note: type: Plain text
en: execve - execute program
fr: execve - Exécuter un programme

note: type: Plain text
en: B<execve>()  executes the program pointed to by I<filename>.  I<filename> must be either a binary executable, or a script starting with a line of the form:
fr: B<execve>() exécute le programme correspondant au fichier I<filename>. Celui\(hyci doit être un exécutable binaire ou bien un script commençant par une ligne du type\ :

note: type: Plain text
en: B<#!> I<interpreter >[optional-arg]
fr: B<#!> I<interpréteur >[argument-optionnel]

note: type: Plain text
en: For details of the latter case, see "Interpreter scripts" below.
fr: Pour des détails sur ce dernier cas, consultez «\ Scripts\ » ci\(hydessous.

note: type: Plain text
en: I<argv> is an array of argument strings passed to the new program.  By convention, the first of these strings should contain the filename associated with the file being executed.  I<envp> is an array of strings, conventionally of the form B<key=value>, which are passed as environment to the new program.  Both I<argv> and I<envp> must be terminated by a null pointer.  The argument vector and environment can be accessed by the called program's main function, when it is defined as:
fr: I<argv> est un tableau de chaînes d'arguments passées au nouveau programme. Par convention, la première de ces chaînes devrait contenir le nom de fichier associé au fichier étant exécuté. I<envp> est un tableau de chaînes, ayant par convention la forme B<clé=valeur>, qui sont passées au nouveau programme comme environnement. I<argv> ainsi que I<envp> doivent se terminer par un pointeur NULL. Les arguments et l'environnement sont accessibles par le nouveau programme dans sa fonction principale, lorsqu'elle est définie comme\ :

note: type: Plain text
en: B<execve>()  does not return on success, and the text, data, bss, and stack of the calling process are overwritten by that of the program loaded.
fr: En cas de réussite, B<execve>() ne revient pas à l'appelant, et les segments de texte, de données («\ data\ » et «\ bss\ »), ainsi que la pile du processus appelant sont remplacés par ceux du programme chargé.

note: type: Plain text
en: If the current program is being ptraced, a B<SIGTRAP> is sent to it after a successful B<execve>().
fr: Si l'on effectuait un I<ptrace>(2) sur le programme appelant, un signal B<SIGTRAP> est envoyé après la réussite de B<execve>().

note: type: Plain text
en: If the set-user-ID bit is set on the program file pointed to by I<filename>, and the underlying filesystem is not mounted I<nosuid> (the B<MS_NOSUID> flag for B<mount>(2)), and the calling process is not being ptraced, then the effective user ID of the calling process is changed to that of the owner of the program file.  Similarly, when the set-group-ID bit of the program file is set the effective group ID of the calling process is set to the group of the program file.
fr: Si le bit Set-UID est positionné sur le fichier I<filename>, si le système de fichiers sous\(hyjacent n'est pas monté I<nosuid> (l'attribut B<MS_NOSUID> de B<mount>(2)), et si le programme n'est pas tracé, l'UID effectif du processus appelant est modifié pour prendre celui du propriétaire du fichier. De même, lorsque le bit Set\(hyGID est positionné, le GID effectif est modifié pour correspondre à celui du groupe du fichier.

note: type: Plain text
en: The effective user ID of the process is copied to the saved set-user-ID; similarly, the effective group ID is copied to the saved set-group-ID.  This copying takes place after any effective ID changes that occur because of the set-user-ID and set-group-ID permission bits.
fr: L'UID effectif du processus est copié dans le Set-UID sauvé\ ; de la même manière, le GID effectif est copié dans le Set-GID sauvé. Ces copies ont lieu après toute modification d'ID effectif à cause des bits de permission Set-UID et Set-GID.

note: type: Plain text
en: If the executable is an a.out dynamically linked binary executable containing shared-library stubs, the Linux dynamic linker B<ld.so>(8)  is called at the start of execution to bring needed shared libraries into memory and link the executable with them.
fr: Si l'exécutable est un fichier binaire a.out lié dynamiquement, et contenant des appels aux bibliothèques partagées, le linker dynamique de Linux B<ld.so>(8) est appelé avant l'exécution, afin de charger les bibliothèques partagées nécessaires en mémoire et d'effectuer l'édition des liens de l'exécutable.

note: type: Plain text
en: If the executable is a dynamically linked ELF executable, the interpreter named in the PT_INTERP segment is used to load the needed shared libraries.  This interpreter is typically I</lib/ld-linux.so.2> for binaries linked with glibc 2.  (For binaries linked with the old Linux libc5, the interpreter was typically I</lib/ld-linux.so.1>.)
fr: Si l'exécutable est au format ELF lié dynamiquement, l'interpréteur indiqué dans le segment PT_INTERP sera invoqué pour charger les bibliothèques partagées. Cet interpréteur est généralement I</lib/ld-linux.so.2> pour les fichiers binaires liés avec la glibc 2 (pour les fichiers binaires liés avec l'ancienne libc Linux 5, l'interpréteur était typiquement I</lib/ld-linux.so.1>).

note: type: Plain text
en: All process attributes are preserved during an B<execve>(), except the following:
fr: Tous les attributs du processus sont préservés lors d'un B<execve>(), à l'exception des suivants\ :

note: type: Plain text
en: The dispositions of any signals that are being caught are reset to the default (B<signal>(7)).
fr: Les signaux pour lesquels le processus avait placé un gestionnaire sont réinitialisés à leur valeur par défaut (consultez B<signal>(7)).

note: type: Plain text
en: Any alternate signal stack is not preserved (B<sigaltstack>(2)).
fr: L'éventuelle pile spécifique pour les gestionnaires de signaux n'est pas conservée (B<sigaltstack>(2)).

note: type: Plain text
en: Memory mappings are not preserved (B<mmap>(2)).
fr: Les projections en mémoire ne sont pas conservées (B<mmap>(2)).

note: type: Plain text
en: Attached System V shared memory segments are detached (B<shmat>(2)).
fr: Les segments de mémoire partagée System V sont détachés (B<shmat>(2)).

note: type: Plain text
en: POSIX shared memory regions are unmapped (B<shm_open>(3)).
fr: Les objets de mémoire partagée POSIX sont supprimés (B<shm_open>(3)).

note: type: Plain text
en: Open POSIX message queue descriptors are closed (B<mq_overview>(7)).
fr: Les descripteurs de files de messages POSIX ouverts sont fermés (B<mq_overview>(7)).

note: type: Plain text
en: Any open POSIX named semaphores are closed (B<sem_overview>(7)).
fr: Les sémaphores nommés POSIX ouverts sont fermés (B<sem_overview>(7)).

note: type: Plain text
en: POSIX timers are not preserved (B<timer_create>(2)).
fr: Les temporisations POSIX ne sont pas conservées (B<timer_create>(2)).

note: type: Plain text
en: Any open directory streams are closed (B<opendir>(3)).
fr: Les flux de répertoires ouverts sont fermés (B<opendir>(3)).

note: type: Plain text
en: Memory locks are not preserved (B<mlock>(2), B<mlockall>(2)).
fr: Les verrouillages de mémoire ne sont pas préservés (B<mlock>(2), B<mlockall>(2)).

note: type: Plain text
en: Exit handlers are not preserved (B<atexit>(3), B<on_exit>(3)).
fr: Les gestionnaires de terminaison ne sont pas préservés (B<atexit>(3), B<on_exit>(3)).

note: type: Plain text
en: The floating-point environment is reset to the default (see B<fenv>(3)).
fr: L'environnement de travail en virgule flottante est remis à zéro (consultez B<fenv>(3)).

note: type: Plain text
en: The process attributes in the preceding list are all specified in POSIX.1-2001.  The following Linux-specific process attributes are also not preserved during an B<execve>():
fr: Les attributs de processus listés ci\(hydessus sont spécifiés dans POSIX.1-2001. Les attributs de processus spécifiques à Linux suivants sont également réinitialisés lors d'un B<execve>()\ :

note: type: Plain text
en: The B<prctl>(2)  B<PR_SET_DUMPABLE> flag is set, unless a set-user-ID or set-group ID program is being executed, in which case it is cleared.
fr: L'attribut B<PR_SET_DUMPABLE> de B<prctl>(2) est activé, sauf si un programme setuid ou setgid est exécuté, auquel cas il est désactivé.

note: type: Plain text
en: The B<prctl>(2)  B<PR_SET_KEEPCAPS> flag is cleared.
fr: L'attribut B<PR_SET_KEEPCAPS> de B<prctl>(2) est effacé.

note: type: Plain text
en: (Since Linux 2.4.36 / 2.6.23)  If a set-user-ID or set-group-ID program is being executed, then the parent death signal set by B<prctl>(2)  B<PR_SET_PDEATHSIG> flag is cleared.
fr: (Depuis Linux 2.4.36 ou 2.6.23) Si un programme setuid ou setgid est exécuté, alors le signal de mort de son père défini par l'attribut B<PR_SET_PDEATHSIG> de B<prctl>(2) est effacé.

note: type: Plain text
en: The process name, as set by B<prctl>(2)  B<PR_SET_NAME> (and displayed by I<ps\ -o comm>), is reset to the name of the new executable file.
fr: Le nom du processus, positionné par B<prctl>(2) B<PR_SET_NAME> (et affiché avec I<ps\ -o comm>), est réinitialisé avec le nom du nouvel exécutable.

note: type: Plain text
en: The B<SECBIT_KEEP_CAPS> I<securebits> flag is cleared.  See B<capabilities>(7).
fr: L'attribut I<securebits> B<SECBIT_KEEP_CAPS> de B<prctl>() est effacé. Consultez B<capabilities>(7).

note: type: Plain text
en: The termination signal is reset to B<SIGCHLD> (see B<clone>(2)).
fr: Le signal de terminaison est réinitialisé à B<SIGCHLD> (consultez B<clone>(2)).

note: type: Plain text
en: Note the following further points:
fr: Notez également les points suivants\ :

note: type: Plain text
en: All threads other than the calling thread are destroyed during an B<execve>().  Mutexes, condition variables, and other pthreads objects are not preserved.
fr: Tous les threads autre que l'appelant sont détruits lors d'un B<execve>(). Les mutex, les variables de condition, et les autres objets de pthreads sont détruits.

note: type: Plain text
en: The equivalent of I<setlocale(LC_ALL, "C")> is executed at program start-up.
fr: L'équivalent de I<setlocale(LC_ALL, "C")> est exécuté au démarrage du programme.

note: type: Plain text
en: POSIX.1-2001 specifies that the dispositions of any signals that are ignored or set to the default are left unchanged.  POSIX.1-2001 specifies one exception: if B<SIGCHLD> is being ignored, then an implementation may leave the disposition unchanged or reset it to the default; Linux does the former.
fr: POSIX.1-2001 indique que les actions pour les signaux ignorés ou placés à la valeur par défaut ne sont pas modifiées. Une exception est néanmoins spécifiée dans POSIX.1-2001\ : si B<SIGCHLD> est ignoré, l'implémentation peut laisser l'action inchangée ou la replacer à la valeur par défaut\ ; Linux ne modifie pas l'action.

note: type: Plain text
en: Any outstanding asynchronous I/O operations are canceled (B<aio_read>(3), B<aio_write>(3)).
fr: Toutes les opérations d'E/S asynchrones en cours sont annulées (B<aio_read>(3), B<aio_write>(3)).

note: type: Plain text
en: For the handling of capabilities during B<execve>(), see B<capabilities>(7).
fr: Pour le traitement des capacités lors d'un B<execve>(), consultez B<capabilities>(7).

note: On Linux it appears that these file descriptors are always open after an execve(), and it looks like Solaris 8 and FreeBSD 6.1 are the same. -- mtk, 30 Apr 2007 type: Plain text
en: By default, file descriptors remain open across an B<execve>().  File descriptors that are marked close-on-exec are closed; see the description of B<FD_CLOEXEC> in B<fcntl>(2).  (If a file descriptor is closed, this will cause the release of all record locks obtained on the underlying file by this process.  See B<fcntl>(2)  for details.)  POSIX.1-2001 says that if file descriptors 0, 1, and 2 would otherwise be closed after a successful B<execve>(), and the process would gain privilege because the set-user_ID or set-group_ID permission bit was set on the executed file, then the system may open an unspecified file for each of these file descriptors.  As a general principle, no portable program, whether privileged or not, can assume that these three file descriptors will remain closed across an B<execve>().
fr: Par défaut, les descripteurs de fichier restent ouverts au travers d'un B<execve>(). Les descripteurs marqués close\(hyon\(hyexec sont fermés\ ; consultez la description de B<FD_CLOEXEC> dans B<fcntl>(2). (Si un descripteur de fichier est fermé, cela cause la libération de tous les verrous d'enregistrement obtenus sur le fichier correspondant par ce processus. Consultez B<fcntl>(2) pour les détails.) POSIX.1-2001 indique que si les descripteurs de fichiers 0, 1 et 2 devaient être fermés après un B<execve>() réussi, et le processus devient privilégié en raison d'un bit set-user-ID ou set-group-ID sur le fichier exécuté, le système peut ouvrir un fichier non indiqué pour chacun de ces descripteurs. En général, un programme portable, privilégié ou pas, peut considérer que ces trois descripteurs resteront fermés après un B<execve>().

note: type: SS
en: Interpreter scripts
fr: Scripts

note: type: Plain text
en: An interpreter script is a text file that has execute permission enabled and whose first line is of the form:
fr: Un script est un fichier dont le bit d'exécution est activé et dont la première ligne est de la forme\ :

note: type: Plain text
en: The I<interpreter> must be a valid pathname for an executable which is not itself a script.  If the I<filename> argument of B<execve>()  specifies an interpreter script, then I<interpreter> will be invoked with the following arguments:
fr: L'I<interpréteur> doit être un nom de fichier valide pour un exécutable qui n'est pas un script lui\(hymême. Si l'argument I<filename> de B<execve>() indique un script, l'I<interpréteur> sera appelé avec les arguments suivants\ :

note: type: Plain text
en: I<interpreter> [optional-arg] I<filename> arg...
fr: I<interpréteur> [argument-optionnel] I<filename> arg...

note: type: Plain text
en: where I<arg...> is the series of words pointed to by the I<argv> argument of B<execve>(), starting at I<argv>[1].
fr: où I<arg...> est la liste de mots pointée par l'argument I<argv> de B<execve>(), commençant par I<argv>[1].

note: type: Plain text
en: For portable use, I<optional-arg> should either be absent, or be specified as a single word (i.e., it should not contain white space); see NOTES below.
fr: Pour être portable, I<argument-optionnel> doit soit être absent, soit être un seul mot (c'est\(hyà\(hydire ne pas contenir d'espace)\ ; consultez les NOTES ci\(hydessous.

note: type: SS
en: Limits on size of arguments and environment
fr: Limites sur la taille des paramètres et environnement

note: type: Plain text
en: Most UNIX implementations impose some limit on the total size of the command-line argument (I<argv>)  and environment (I<envp>)  strings that may be passed to a new program.  POSIX.1 allows an implementation to advertise this limit using the B<ARG_MAX> constant (either defined in I<E<lt>limits.hE<gt>> or available at run time using the call I<sysconf(_SC_ARG_MAX)>).
fr: La plupart des implémentations UNIX imposent des limites sur la taille totale des chaînes des paramètres des lignes de commande (I<argv>) et de l'environnement (I<envp>) qui peuvent être passées à un nouveau programme. POSIX.1 permet à une implémentation d'annoncer cette limite en utilisant la constante B<ARG_MAX> (soit définie dans I<E<lt>limits.hE<gt>>, soit disponible à l'exécution en utilisant l'appel I<sysconf(_SC_ARG_MAX)>).

note: type: Plain text
en: On Linux prior to kernel 2.6.23, the memory used to store the environment and argument strings was limited to 32 pages (defined by the kernel constant B<MAX_ARG_PAGES>).  On architectures with a 4-kB page size, this yields a maximum size of 128 kB.
fr: Sur les noyaux Linux antérieurs à 2.6.23, la mémoire utilisée pour stocker les chaînes d'environnement et d'arguments était limitée à 32 pages (défini par la constante noyau B<MAX_ARG_PAGES>). Sur les architectures dont la taille de page est 4 Ko, cela donne un maximum de 128 Ko.

note: For some background on the changes to ARG_MAX in kernels 2.6.23 and 2.6.25, see: http://sourceware.org/bugzilla/show_bug.cgi?id=5786 http://bugzilla.kernel.org/show_bug.cgi?id=10095 http://thread.gmane.org/gmane.linux.kernel/646709/focus=648101, checked into 2.6.25 as commit a64e715fc74b1a7dcc5944f8
en: On kernel 2.6.23 and later, most architectures support a size limit derived from the soft B<RLIMIT_STACK> resource limit (see B<getrlimit>(2))  that is in force at the time of the B<execve>()  call.  (Architectures with no memory management unit are excepted: they maintain the limit that was in effect before kernel 2.6.23.)  This change allows programs to have a much larger argument and/or environment list.  For these architectures, the total size is limited to 1/4 of the allowed stack size.  (Imposing the 1/4-limit ensures that the new program always has some stack space.)  Since Linux 2.6.25, the kernel places a floor of 32 pages on this size limit, so that, even when B<RLIMIT_STACK> is set very low, applications are guaranteed to have at least as much argument and environment space as was provided by Linux 2.6.23 and earlier.  (This guarantee was not provided in Linux 2.6.23 and 2.6.24.)  Additionally, the limit per string is 32 pages (the kernel constant B<MAX_ARG_STRLEN>), and the maximum number of strings is 0x7FFFFFFF.
fr: Sur les noyaux 2.6.23 et ultérieurs, la plupart des architectures ont une limite de taille dérivée de la limite de ressources souple B<RLIMIT_STACK> (consultez B<getrlimit>(2)) qui est en vigueur au moment de l'appel à B<execve>() (ce n'est pas le cas pour les architectures sans unité de gestion mémoire : elles conservent la limite des noyaux antérieurs à 2.6.23). Ce changement permet aux programmes d'avoir une liste de paramètre ou un environnement beaucoup plus grand. Pour ces architectures, la taille totale est limitées à 1/4 de la taille de pile permise (imposer une limite de 1/4 permet d'assurer que le nouveau programme garde de l'espace pour la pile). Depuis Linux 2.6.25, le noyau place une limite inférieure de 32 pages à cette limite de taille, de telle sorte que même si B<RLIMIT_STACK> est très faible, il est garantit aux applications qu'elles auront au moins autant de place pour les paramètres et leur environnement que ce qui était fournit par Linux 2.6.23 et les précédents (cette garantie n'était pas présente dans les noyaux 2.6.23 et 2.6.24). De plus, la limite par chaîne est de 32 pages (la constante noyau B<MAX_ARG_STRLEN>), et le nombre maximal de chaînes est de 0x7FFFFFFF.

note: type: Plain text
en: On success, B<execve>()  does not return, on error -1 is returned, and I<errno> is set appropriately.
fr: En cas de réussite, B<execve>() ne revient pas, en cas d'échec il renvoie -1 et I<errno> contient le code d'erreur.

note: type: Plain text
en: The total number of bytes in the environment (I<envp>)  and argument list (I<argv>)  is too large.
fr: Le nombre total d'octets dans l'environnement (I<envp>) et la liste d'arguments (I<argv>) est trop grand.

note: type: Plain text
en: Search permission is denied on a component of the path prefix of I<filename> or the name of a script interpreter.  (See also B<path_resolution>(7).)
fr: La permission de parcours est refusée pour un des composants du chemin I<filename> ou du nom d'un interpréteur de script. (Consultez aussi B<path_resolution>(7).)

note: type: Plain text
en: The file or a script interpreter is not a regular file.
fr: Le fichier ou l'interpréteur de script n'est pas un fichier régulier.

note: type: Plain text
en: Execute permission is denied for the file or a script or ELF interpreter.
fr: L'autorisation d'exécution est refusée pour le fichier, ou un interpréteur de script, ou un interpréteur ELF.

note: type: Plain text
en: The filesystem is mounted I<noexec>.
fr: Le système de fichiers est monté avec l'option I<noexec>.

note: type: Plain text
en: I<filename> or one of the pointers in the vectors I<argv> or I<envp> points outside your accessible address space.
fr: Le paramètre I<filename> ou l'un des pointeurs du vecteur I<argv> ou I<envp> pointe en dehors de l'espace d'adressage accessible.

note: type: Plain text
en: An ELF executable had more than one PT_INTERP segment (i.e., tried to name more than one interpreter).
fr: Un exécutable ELF a plusieurs segments PT_INTERP (indique plusieurs interpréteurs).

note: type: Plain text
en: An ELF interpreter was a directory.
fr: L'interpréteur ELF cité est un répertoire.

note: type: Plain text
en: An ELF interpreter was not in a recognized format.
fr: L'interpréteur ELF mentionné n'est pas dans un format connu.

note: type: Plain text
en: Too many symbolic links were encountered in resolving I<filename> or the name of a script or ELF interpreter.
fr: Le chemin d'accès au fichier I<filename>, ou à un interpréteur de script, ou à un interpréteur ELF, contient une référence circulaire (à travers un lien symbolique)

note: type: Plain text
en: The process has the maximum number of files open.
fr: Le nombre maximal de fichiers ouverts par processus est atteint.

note: type: Plain text
en: I<filename> is too long.
fr: La chaîne de caractères I<filename> est trop longue.

note: type: Plain text
en: The system limit on the total number of open files has been reached.
fr: La limite du nombre total de fichiers ouverts sur le système a été atteinte.

note: type: Plain text
en: The file I<filename> or a script or ELF interpreter does not exist, or a shared library needed for file or interpreter cannot be found.
fr: Le fichier I<filename> ou un script ou un interpréteur ELF n'existe pas, ou une bibliothèque partagée nécessaire pour le fichier ou l'interpréteur n'est pas disponible.

note: type: Plain text
en: An executable is not in a recognized format, is for the wrong architecture, or has some other format error that means it cannot be executed.
fr: Le fichier exécutable n'est pas dans le bon format, ou est destiné à une autre architecture.

note: type: Plain text
en: A component of the path prefix of I<filename> or a script or ELF interpreter is not a directory.
fr: Un élément du chemin d'accès au fichier I<filename>, à un script ou à un interpréteur ELF, n'est pas un répertoire.

note: type: Plain text
en: The filesystem is mounted I<nosuid>, the user is not the superuser, and the file has the set-user-ID or set-group-ID bit set.
fr: Le système de fichiers est monté avec l'attribut I<nosuid> et le fichier a un bit Set-UID ou Set-GID positionné.

note: type: Plain text
en: The process is being traced, the user is not the superuser and the file has the set-user-ID or set-group-ID bit set.
fr: Le processus est suivi avec B<ptrace>(2), l'utilisateur n'est pas le superutilisateur, et le fichier a un bit Set-UID ou Set-GID positionné.

note: type: Plain text
en: Executable was open for writing by one or more processes.
fr: Un exécutable a été ouvert en écriture par un ou plusieurs processus.

note: SVr4 documents additional error conditions EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP; POSIX does not document ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL, EISDIR or ELIBBAD error conditions. type: Plain text
en: SVr4, 4.3BSD, POSIX.1-2001.  POSIX.1-2001 does not document the #! behavior but is otherwise compatible.
fr: SVr4, BSD\ 4.3, POSIX.1-2001. POSIX.1-2001 ne documente pas le comportement avec «\ #!\ » mais est néanmoins compatible.

note: type: Plain text
en: Set-user-ID and set-group-ID processes can not be B<ptrace>(2)d.
fr: Les processus Set-UID et Set-GID ne peuvent pas être suivis par B<ptrace>(2).

note: type: Plain text
en: Linux ignores the set-user-ID and set-group-ID bits on scripts.
fr: Linux ignore les bits Set-UID et Set-GID sur les scripts.

note: type: Plain text
en: The result of mounting a filesystem I<nosuid> varies across Linux kernel versions: some will refuse execution of set-user-ID and set-group-ID executables when this would give the user powers she did not have already (and return B<EPERM>), some will just ignore the set-user-ID and set-group-ID bits and B<exec>()  successfully.
fr: Le résultat d'un montage de système de fichiers avec l'attribut I<nosuid> peut varier suivant les versions du noyau Linux\ : certaines refuseront l'exécution des fichiers Set-UID et Set-GID lorsque cela donnerait à l'appelant des privilèges qu'il n'a pas (et renverront l'erreur B<EPERM>), d'autres ignoreront simplement les bits Set-UID et Set-GID mais accepteront d'effectuer l'appel B<exec>().

note: type: Plain text
en: A maximum line length of 127 characters is allowed for the first line in a #! executable shell script.
fr: La première ligne d'un shell script exécutable (#!) a une longueur maximale de 127 caractères.

note: e.g., Solaris 8 e.g., FreeBSD before 6.0, but not FreeBSD 6.0 onward type: Plain text
en: The semantics of the I<optional-arg> argument of an interpreter script vary across implementations.  On Linux, the entire string following the I<interpreter> name is passed as a single argument to the interpreter, and this string can include white space.  However, behavior differs on some other systems.  Some systems use the first white space to terminate I<optional-arg>.  On some systems, an interpreter script can have multiple arguments, and white spaces in I<optional-arg> are used to delimit the arguments.
fr: La sémantique de l'I<argument-optionnel> d'un script diffère selon les implémentations. Sous Linux, la chaîne qui suit le nom de l'I<interpréteur> est passée à l'interpréteur comme un seul mot, et cette chaîne peut contenir des espaces. Cependant, le comportement est différent sur d'autres systèmes. Certains utilisent la première espace comme fin de l'I<argument-optionnel>. Sur certains systèmes, un script peut avoir plusieurs arguments, délimités par des espaces dans I<argument-optionnel>.

note: e.g., EFAULT on Solaris 8 and FreeBSD 6.1; but HP-UX 11 is like Linux -- mtk, Apr 2007 Bug filed 30 Apr 2007: http://bugzilla.kernel.org/show_bug.cgi?id=8408 Bug rejected (because fix would constitute an ABI change). type: Plain text
en: On Linux, either I<argv> or I<envp> can be specified as NULL, which has the same effect as specifying these arguments as a pointer to a list containing a single null pointer.  B<Do not take advantage of this misfeature!> It is nonstandard and nonportable: on most other UNIX systems doing this will result in an error (B<EFAULT>).
fr: Sous Linux, I<argv> et I<envp> peuvent être NULL, ce qui a le même effet que d’indiquer ces paramètres comme un pointeur vers une liste contenant un pointeur NULL unique. B<Ne vous servez pas de cette caractéristique\ !> Elle n'est ni standard ni portable\ : sur la plupart des systèmes UNIX, faire cela causera une erreur.

note: .SH BUGS Some Linux versions have failed to check permissions on ELF interpreters.  This is a security hole, because it allows users to open any file, such as a rewinding tape device, for reading.  Some Linux versions have also had other security holes in .BR execve () that could be exploited for de
en: POSIX.1-2001 says that values returned by B<sysconf>(3)  should be invariant over the lifetime of a process.  However, since Linux 2.6.23, if the B<RLIMIT_STACK> resource limit changes, then the value reported by B<_SC_ARG_MAX> will also change, to reflect the fact that the limit on space for holding command-line arguments and environment variables has changed.
fr: POSIX.1-2001 indique que les valeurs renvoyées par B<sysconf>(3) ne doivent pas changer pendant la vie d'un processus. Cependant, depuis Linux 2.6.23, si la limite de ressources B<RLIMIT_STACK> change, alors la valeur renvoyée par B<_SC_ARG_MAX> changera également, pour refléter le fait que la limite de l'espace qui reçoit les paramètres de la ligne de commande et les variables d'environnement a changé.

note: type: SS
en: Historical
fr: Historique

note: type: Plain text
en: With UNIX V6 the argument list of an B<exec>()  call was ended by 0, while the argument list of I<main> was ended by -1.  Thus, this argument list was not directly usable in a further B<exec>()  call.  Since UNIX V7 both are NULL.
fr: Avec UNIX V6, la liste des arguments d'un appel B<exec>() se terminait par 0, alors que la liste des arguments de I<main> se terminait par -1. Aussi, cette liste d'arguments n'était pas utilisable directement dans un appel B<exec>() supplémentaire. Depuis UNIX V7, les deux terminateurs sont NULL.

note: type: Plain text
en: The following program is designed to be execed by the second program below.  It just echoes its command-line arguments, one per line.
fr: Le programme suivant est conçu pour être exécuté par le second programme ci\(hydessous. Il se contente d'afficher les paramètres de sa ligne de commande, un par ligne.

note: type: Plain text
en: This program can be used to exec the program named in its command-line argument:
fr: Ce programme peut être utilisé pour exécuter le programme donné comme argument de ligne de commande\ :

note: type: Plain text
en:     execve(argv[1], newargv, newenviron);
        perror("execve");   /* execve() only returns on error */
        exit(EXIT_FAILURE);
    }
fr:     execve(argv[1], newargv, newenviron);
        perror("execve");   /* execve() ne retourne qu'en cas d'erreur */
        exit(EXIT_FAILURE);
    }

note: type: Plain text
en: We can use the second program to exec the first as follows:
fr: On peut utiliser le second programme pour exécuter le premier de la façon suivante\ :

note: type: Plain text
en: We can also use these programs to demonstrate the use of a script interpreter.  To do this we create a script whose "interpreter" is our I<myecho> program:
fr: On peut aussi utiliser ces programmes pour montrer l'utilisation d'un interpréteur de scripts. Pour ce faire, on crée un script dont l'«\ interpréteur\ » est notre programme I<myecho>\ :

note: type: Plain text
en: We can then use our program to exec the script:
fr: On peut alors utiliser notre programme pour exécuter le script\ :

note: type: TH
en: 2008-11-27
fr: 27 novembre 2008

note: type: Plain text
en: exit_group - exit all threads in a process
fr: exit_group - Terminer tous les threads du processus

note: type: Plain text
en: This system call is equivalent to B<exit>(2)  except that it terminates not only the calling thread, but all threads in the calling process's thread group.
fr: Cet appel système est équivalent à B<exit>(2) à ceci près qu'il termine non seulement le thread courant, mais tous les threads dans le groupe de threads du processus appelant.

note: type: Plain text
en: This system call does not return.
fr: Cette fonction ne retourne pas.

note: type: Plain text
en: This call is present since Linux 2.5.35.
fr: Cet appel système est présent depuis Linux 2.5.35.

note: type: Plain text
en: This call is Linux-specific.
fr: Cet appel système est spécifique à Linux.

note: type: Plain text
en: Since glibc 2.3, this is the system call invoked when the B<exit>(2)  wrapper function is called.
fr: Depuis la glibc 2.3, c'est l'appel système qui est appelé par la fonction enveloppe B<exit>(2).

note: type: TH
en: 2014-04-20
fr: 20 avril 2014

note: type: Plain text
en: fcntl - manipulate file descriptor
fr: fcntl - Manipuler un descripteur de fichier

note: type: Plain text
en: B<fcntl>()  performs one of the operations described below on the open file descriptor I<fd>.  The operation is determined by I<cmd>.
fr: B<fcntl>() permet de se livrer à diverses opérations sur le descripteur de fichier I<fd>. L'opération en question est déterminée par la valeur de l'argument I<cmd>.

note: type: Plain text
en: B<fcntl>()  can take an optional third argument.  Whether or not this argument is required is determined by I<cmd>.  The required argument type is indicated in parentheses after each I<cmd> name (in most cases, the required type is I<int>, and we identify the argument using the name I<arg>), or I<void> is specified if the argument is not required.
fr: B<fcntl>() prend un troisième paramètre optionnel. La nécessité de fournir ce paramètre dépend de I<cmd>. le paramètre doit être du type indiqué entre parenthèses après chaque nom de commande I<cmd> (dans la plupart des cas, le type requis est un I<int>, et le paramètre est identifié en utilisant le nom I<arg>), ou I<void> est indiqué si le paramètre n'est pas nécessaire.

note: type: SS
en: Duplicating a file descriptor
fr: Dupliquer un descripteur de fichier

note: type: Plain text
en: Find the lowest numbered available file descriptor greater than or equal to I<arg> and make it be a copy of I<fd>.  This is different from B<dup2>(2), which uses exactly the descriptor specified.
fr: Trouver le plus petit numéro de descripteur libre supérieur ou égal à I<arg> et le transformer en copie de I<fd>. Ceci est différent de B<dup2>(2), qui utilise exactement le descripteur transmis.

note: type: Plain text
en: On success, the new descriptor is returned.
fr: En cas de réussite, le nouveau descripteur est renvoyé.

note: type: Plain text
en: See B<dup>(2)  for further details.
fr: Consultez B<dup>(2) pour plus d'informations.

note: type: TP
en: B<F_DUPFD_CLOEXEC> (I<int>; since Linux 2.6.24)
fr: B<F_DUPFD_CLOEXEC> (I<int> ; depuis Linux 2.6.24)

note: type: Plain text
en: As for B<F_DUPFD>, but additionally set the close-on-exec flag for the duplicate descriptor.  Specifying this flag permits a program to avoid an additional B<fcntl>()  B<F_SETFD> operation to set the B<FD_CLOEXEC> flag.  For an explanation of why this flag is useful, see the description of B<O_CLOEXEC> in B<open>(2).
fr: Comme pour B<F_DUPFD>, mais positionne en plus l'attribut « close-on-exec » pour le descripteur dupliqué. Indiquer cet attribut permet d'éviter une opération B<F_SETFD> de B<fcntl>() supplémentaire pour positionner l'attribut B<FD_CLOEXEC>. Pour une explication sur ce en quoi cet attribut est utile, consultez la description de B<O_CLOEXEC> dans B<open>(2).

note: type: SS
en: File descriptor flags
fr: Attributs du descripteur de fichier

note: type: Plain text
en: The following commands manipulate the flags associated with a file descriptor.  Currently, only one such flag is defined: B<FD_CLOEXEC>, the close-on-exec flag.  If the B<FD_CLOEXEC> bit is 0, the file descriptor will remain open across an B<execve>(2), otherwise it will be closed.
fr: Les commandes suivantes manipulent les attributs associés à un descripteur de fichier. Actuellement, un seul attribut est défini\ : il s'agit de B<FD_CLOEXEC>, l'attribut «\ close\(hyon\(hyexec\ ». Si le bit B<FD_CLOEXEC> est 0, le descripteur de fichier reste ouvert au travers d'un B<execve>(2), autrement il sera fermé.

note: type: Plain text
en: Read the file descriptor flags; I<arg> is ignored.
fr: Lire les attributs du descripteur de fichier ; I<arg> est ignoré.

note: type: Plain text
en: Set the file descriptor flags to the value specified by I<arg>.
fr: Positionner les attributs du descripteur de fichier avec la valeur précisée par I<arg>.

note: type: Plain text
en: In multithreaded programs, using B<fcntl>()  B<F_SETFD> to set the close-on-exec flag at the same time as another thread performs a B<fork>(2)  plus B<execve>(2)  is vulnerable to a race condition that may unintentionally leak the file descriptor to the program executed in the child process.  See the discussion of the B<O_CLOEXEC> flag in B<open>(2)  for details and a remedy to the problem.
fr: Dans un programme multithreadé, l'utilisation simultanée dans un thread de B<fcntl>() avec B<F_SETFD> afin de définir l'attribut « close-on-exec » (B<FD_CLOEXEC>), et de B<fork>(2) suivi de B<execve>(2) dans un autre thread rend le programme vulnérable à une condition de concurrence pouvant provoquer la fuite du descripteur de fichier vers le programme exécuté dans le processus fils. Consultez les détails de l'attribut B<O_CLOEXEC> dans B<open>(2) qui décrivent une solution à ce problème.

note: type: SS
en: File status flags
fr: Attribut d'état du fichier

note: or .BR creat (2), type: Plain text
en: Each open file description has certain associated status flags, initialized by B<open>(2)  and possibly modified by B<fcntl>().  Duplicated file descriptors (made with B<dup>(2), B<fcntl>(F_DUPFD), B<fork>(2), etc.) refer to the same open file description, and thus share the same file status flags.
fr: Un descripteur de fichier dispose de certains attributs, initialisés par B<open>(2) et éventuellement modifiés par B<fcntl>(). Les attributs sont partagés entre les copies (obtenues avec B<dup>(2), B<fcntl>(F_DUPFD), B<fork>(2), etc.) du même descripteur de fichier.

note: type: Plain text
en: The file status flags and their semantics are described in B<open>(2).
fr: Les attributs et leurs sémantiques sont décrits dans la page B<open>(2).

note: type: Plain text
en: Get the file access mode and the file status flags; I<arg> is ignored.
fr: Obtenir le mode d'accès et les attributs d'état du fichier ; I<arg> est ignoré.

note: type: Plain text
en: Set the file status flags to the value specified by I<arg>.  File access mode (B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR>)  and file creation flags (i.e., B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, B<O_TRUNC>)  in I<arg> are ignored.  On Linux this command can change only the B<O_APPEND>, B<O_ASYNC>, B<O_DIRECT>, B<O_NOATIME>, and B<O_NONBLOCK> flags.  It is not possible to change the B<O_DSYNC> and B<O_SYNC> flags; see BUGS, below.
fr: Positionner les nouveaux attributs pour le descripteur de fichier à la valeur indiquée par I<arg>. Les bits de mode d'accès (B<O_RDONLY>, B<O_WRONLY>, B<O_RDWR>) et les attributs de création (B<O_CREAT>, B<O_EXCL>, B<O_NOCTTY>, B<O_TRUNC>) de I<arg> sont ignorés. Sous Linux, cette commande ne peut changer que B<O_APPEND>, B<O_ASYNC>, B<O_DIRECT>, B<O_NOATIME> et B<O_NONBLOCK>. Modifier les attributs B<O_DSYNC> et B<O_SYNC> est impossible, consultez B<BOGUES> ci-dessous.

note: type: SS
en: Advisory locking
fr: Verrouillages coopératifs

note: type: Plain text
en: B<F_SETLK>, B<F_SETLKW>, and B<F_GETLK> are used to acquire, release, and test for the existence of record locks (also known as file-segment or file-region locks).  The third argument, I<lock>, is a pointer to a structure that has at least the following fields (in unspecified order).
fr: B<F_SETLK>, B<F_SETLKW> et B<F_GETLK> servent à gérer les verrouillages d'enregistrements (de segments ou de régions de fichiers). Le troisième argument, I<lock>, est un pointeur sur une structure qui a au moins les champs suivants (dans un ordre non indiqué).

note: type: Plain text
en: struct flock {
        ...
        short l_type;    /* Type of lock: F_RDLCK,
                            F_WRLCK, F_UNLCK */
        short l_whence;  /* How to interpret l_start:
                            SEEK_SET, SEEK_CUR, SEEK_END */
        off_t l_start;   /* Starting offset for lock */
        off_t l_len;     /* Number of bytes to lock */
        pid_t l_pid;     /* PID of process blocking our lock
                            (F_GETLK only) */
        ...
    };
fr: struct flock {
        ...
        short l_type;    /* Type de verrouillage\ : F_RDLCK,
                            F_WRLCK, F_UNLCK */
        short l_whence;  /* Interprétation de l_start:
                            SEEK_SET, SEEK_CUR, SEEK_END */
        off_t l_start;   /* Décalage de début du verrouillage */
        off_t l_len;     /* Nombre d'octets du verrouillage */
        pid_t l_pid;     /* PID du processus bloquant notre verrou
                            (F_GETLK seulement) */
        ...
    };

note: type: Plain text
en: The I<l_whence>, I<l_start>, and I<l_len> fields of this structure specify the range of bytes we wish to lock.  Bytes past the end of the file may be locked, but not bytes before the start of the file.
fr: Les champs I<l_whence>, I<l_start> et I<l_len> de cette structure indiquent l'intervalle d'octets à verrouiller. Des octets après la fin du fichier peuvent être verrouillé, mais pas des octets avant le début du fichier.

note: type: Plain text
en: I<l_start> is the starting offset for the lock, and is interpreted relative to either: the start of the file (if I<l_whence> is B<SEEK_SET>); the current file offset (if I<l_whence> is B<SEEK_CUR>); or the end of the file (if I<l_whence> is B<SEEK_END>).  In the final two cases, I<l_start> can be a negative number provided the offset does not lie before the start of the file.
fr: I<l_start> est la position de début du verrou, et est interprété de façon relative : au début du fichier (si I<l_whence> vaut B<SEEK_SET>) ; à la position actuelle dans le fichier (si I<l_whence> vaut B<SEEK_CUR>) ; à la fin du fichier (si I<l_whence> vaut B<SEEK_END>). Dans les deux derniers cas, I<l_start> peut être un nombre négatif, à partir du moment où la position fournie ne pointe pas avant le début du fichier.

note: type: Plain text
en: I<l_len> specifies the number of bytes to be locked.  If I<l_len> is positive, then the range to be locked covers bytes I<l_start> up to and including I<l_start>+I<l_len>-1.  Specifying 0 for I<l_len> has the special meaning: lock all bytes starting at the location specified by I<l_whence> and I<l_start> through to the end of file, no matter how large the file grows.
fr: I<l_len> indique le nombre d'octets à verrouiller. Si I<l_len> est positif, alors l'intervalle à verrouiller couvre les octets à partir de I<l_start> jusqu'à I<l_start>+I<l_len>-1 (inclus). Indiquer 0 dans I<l_len> a une signification particulière : cela verrouille tous les octets à partir de la position indiquée par I<l_whence> et I<l_start> jusqu'à la fin du fichier, quelle que soit la taille que prendra la fichier.

note: type: Plain text
en: POSIX.1-2001 allows (but does not require)  an implementation to support a negative I<l_len> value; if I<l_len> is negative, the interval described by I<lock> covers bytes I<l_start>+I<l_len> up to and including I<l_start>-1.  This is supported by Linux since kernel versions 2.4.21 and 2.5.49.
fr: POSIX.1-2001 permet (mais n'impose pas) à une implémentation de prendre en charge des valeurs de I<l_len> négatives ; si I<l_len> est négatif, l'intervalle décrivant le verrou I<lock> couvre les octets I<l_start>+I<l_len> jusqu'à I<l_start>-1 inclus. Ceci est supporté par Linux depuis les versions 2.4.21 et 2.5.49.

note: type: Plain text
en: The I<l_type> field can be used to place a read (B<F_RDLCK>)  or a write (B<F_WRLCK>)  lock on a file.  Any number of processes may hold a read lock (shared lock)  on a file region, but only one process may hold a write lock (exclusive lock).  An exclusive lock excludes all other locks, both shared and exclusive.  A single process can hold only one type of lock on a file region; if a new lock is applied to an already-locked region, then the existing lock is converted to the new lock type.  (Such conversions may involve splitting, shrinking, or coalescing with an existing lock if the byte range specified by the new lock does not precisely coincide with the range of the existing lock.)
fr: Le champ I<l_type> peut servir à placer un verrou en lecture (B<F_RDLCK>) ou en écriture (B<F_WRLCK>) sur un fichier. Un nombre quelconque de processus peuvent tenir un verrou en lecture (partagé), sur une région d'un fichier, mais un seul peut avoir un verrou en écriture (exclusif). Un verrou en écriture exclut tous les autres verrous, aussi bien en lecture qu'en écriture. Un processus donné ne peut tenir qu'un seul verrou sur une région d'un fichier, si un nouveau verrou y est appliqué, alors le verrou précédent est converti suivant le nouveau type. Ceci peut entraîner le découpage, la réduction ou l'extension du verrou existant si le nombre d'octets du nouveau verrou ne coïncide pas exactement avec celui de l'ancien.

note: type: Plain text
en: Acquire a lock (when I<l_type> is B<F_RDLCK> or B<F_WRLCK>)  or release a lock (when I<l_type> is B<F_UNLCK>)  on the bytes specified by the I<l_whence>, I<l_start>, and I<l_len> fields of I<lock>.  If a conflicting lock is held by another process, this call returns -1 and sets I<errno> to B<EACCES> or B<EAGAIN>.
fr: Acquérir (si I<l_type> vaut B<F_RDLCK> ou B<F_WRLCK>) ou libérer (si I<l_type> vaut B<F_UNLCK>) le verrou sur les octets indiqués par les champs I<l_whence>, I<l_start>, et I<l_len> de I<lock>. Si un conflit avec un verrou tenu par un autre processus existe, cet appel renvoie -1 et positionne I<errno> aux valeurs B<EACCES> ou B<EAGAIN>.

note: type: Plain text
en: As for B<F_SETLK>, but if a conflicting lock is held on the file, then wait for that lock to be released.  If a signal is caught while waiting, then the call is interrupted and (after the signal handler has returned)  returns immediately (with return value -1 and I<errno> set to B<EINTR>; see B<signal>(7)).
fr: Comme B<F_SETLK>, mais attend la libération du verrou au lieu de retourner une erreur. Si un signal à intercepter est reçu pendant l'attente, l'appel est interrompu et renverra immédiatement (après retour du gestionnaire de signaux) la valeur -1. I<errno> sera remplie avec la valeur B<EINTR> ; consultez B<signal>(7).

note: type: Plain text
en: On input to this call, I<lock> describes a lock we would like to place on the file.  If the lock could be placed, B<fcntl>()  does not actually place it, but returns B<F_UNLCK> in the I<l_type> field of I<lock> and leaves the other fields of the structure unchanged.  If one or more incompatible locks would prevent this lock being placed, then B<fcntl>()  returns details about one of these locks in the I<l_type>, I<l_whence>, I<l_start>, and I<l_len> fields of I<lock> and sets I<l_pid> to be the PID of the process holding that lock.  Note that the information returned by B<F_GETLK> may already be out of date by the time the caller inspects it.
fr: En entrée dans cette routine, I<lock> décrit un verrou que nous aimerions placer sur le fichier. Si le verrouillage est possible, B<fcntl>() ne le fait pas, mais renvoie B<F_UNLCK> dans le champ I<l_type> de I<lock> et laisse les autres champs de la structure inchangés. Si un ou plusieurs verrouillages incompatibles empêchaient l'action, alors B<fcntl>() renvoie des informations sur l'un de ces verrous dans les champs I<l_type>, I<l_whence>, I<l_start>, et I<l_len> de I<lock> et remplit I<l_pid> avec le PID du processus tenant le verrou. Notez que l'information renvoyée par B<F_GETLK> peut être devenue obsolète au moment où l'appelant l'examine.

note: type: Plain text
en: In order to place a read lock, I<fd> must be open for reading.  In order to place a write lock, I<fd> must be open for writing.  To place both types of lock, open a file read-write.
fr: Pour pouvoir placer un verrou en lecture, I<fd> doit être ouvert au moins en lecture. Pour placer un verrou en écriture, I<fd> doit être ouvert en écriture. Pour placer les deux types de verrous, il faut une ouverture en lecture/écriture.

note: (Additional file descriptors referring to the same file may have been obtained by calls to .BR open "(2), " dup "(2), " dup2 "(2), or " fcntl ().) type: Plain text
en: As well as being removed by an explicit B<F_UNLCK>, record locks are automatically released when the process terminates or if it closes I<any> file descriptor referring to a file on which locks are held.  This is bad: it means that a process can lose the locks on a file like I</etc/passwd> or I</etc/mtab> when for some reason a library function decides to open, read and close it.
fr: Outre la suppression par un B<F_UNLCK> explicite, les verrous sont automatiquement libérés lorsque le processus se termine, ou s'il ferme I<l'un> des descripteurs se référant au fichier sur lequel le verrou est placé. C'est dangereux\ : cela signifie qu'un processus peut perdre un verrou sur un fichier comme I</etc/passwd> ou I</etc/mtab> si, pour une raison quelconque, une fonction de bibliothèque décide de l'ouvrir puis de le refermer.

note: type: Plain text
en: Record locks are not inherited by a child created via B<fork>(2), but are preserved across an B<execve>(2).
fr: Les verrouillages d'enregistrements ne sont pas hérités par les enfants lors d'un B<fork>(2), mais sont conservés au travers d'un B<execve>(2).

note: type: Plain text
en: Because of the buffering performed by the B<stdio>(3)  library, the use of record locking with routines in that package should be avoided; use B<read>(2)  and B<write>(2)  instead.
fr: À cause des tampons gérés par la bibliothèque B<stdio>(3), l'utilisation des verrous d'enregistrements avec les routines de celle\(hyci est déconseillé. Utilisez plutôt B<read>(2) et B<write>(2).

note: type: SS
en: Mandatory locking
fr: Verrouillage obligatoire

note: type: Plain text
en: (Non-POSIX.)  The above record locks may be either advisory or mandatory, and are advisory by default.
fr: (Non POSIX) Les verrous d'enregistrements décrits ci\(hydessus peuvent être coopératifs ou impératifs, et sont coopératifs par défaut.

note: type: Plain text
en: Advisory locks are not enforced and are useful only between cooperating processes.
fr: Les verrouillages coopératifs ne sont pas imposés, donc ils ne fonctionnent qu'entre processus qui les utilisent.

note: type: Plain text
en: Mandatory locks are enforced for all processes.  If a process tries to perform an incompatible access (e.g., B<read>(2)  or B<write>(2))  on a file region that has an incompatible mandatory lock, then the result depends upon whether the B<O_NONBLOCK> flag is enabled for its open file description.  If the B<O_NONBLOCK> flag is not enabled, then system call is blocked until the lock is removed or converted to a mode that is compatible with the access.  If the B<O_NONBLOCK> flag is enabled, then the system call fails with the error B<EAGAIN>.
fr: Les verrous impératifs sont appliqués à tous les processus. Si un processus tente d'effectuer un accès incompatible (par exemple B<read>(2) ou B<write>(2)) sur une zone d'un fichier qui a un verrou impératif, le résultat dépend de l'attribut B<O_NONBLOCK> du descripteur de fichier. S'il n'est pas activé, l'appel système est bloqué jusqu'à ce que le verrou soit enlevé ou converti en un mode compatible avec l'accès demandé. Si l'attribut B<O_NONBLOCK> est activé, l'appel système échoue avec l'erreur B<EAGAIN>.

note: type: Plain text
en: To make use of mandatory locks, mandatory locking must be enabled both on the filesystem that contains the file to be locked, and on the file itself.  Mandatory locking is enabled on a filesystem using the "-o mand" option to B<mount>(8), or the B<MS_MANDLOCK> flag for B<mount>(2).  Mandatory locking is enabled on a file by disabling group execute permission on the file and enabling the set-group-ID permission bit (see B<chmod>(1)  and B<chmod>(2)).
fr: Pour utiliser des verrous impératifs, ce type de verrouillage doit être activé sur le système de fichiers contenant le fichier à verrouiller (en utilisant l'option «\ -o mand\ » de B<mount>(8)), ou l'attribut B<MS_MANDLOCK> de B<mount>(2). Le verrouillage impératif est activé pour un fichier en désactivant la permission d'exécution du groupe et en activant le bit de permission Set-GID (consultez B<chmod>(1) et B<chmod>(2)).

note: type: Plain text
en: The Linux implementation of mandatory locking is unreliable.  See BUGS below.
fr: L'implémentation Linux des verrouillages obligatoires n'est pas fiable. Consultez la section BOGUES ci-dessous.

note: type: SS
en: Managing signals
fr: Gestion des signaux

note: type: Plain text
en: B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> and B<F_SETSIG> are used to manage I/O availability signals:
fr: B<F_GETOWN>, B<F_SETOWN>, B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> et B<F_SETSIG> servent à gérer les signaux de disponibilité d'entrée-sortie\ :

note: type: Plain text
en: Return (as the function result)  the process ID or process group currently receiving B<SIGIO> and B<SIGURG> signals for events on file descriptor I<fd>.  Process IDs are returned as positive values; process group IDs are returned as negative values (but see BUGS below).  I<arg> is ignored.
fr: Renvoyer (comme résultat de la fonction) le PID ou l'ID du groupe de processus qui reçoit les signaux B<SIGIO> et B<SIGURG> pour les événements concernant le descripteur de fichier I<fd>. Les groupes de processus sont renvoyés sous forme de valeurs négatives (consultez la section BOGUES ci\(hydessous). I<arg> est ignoré.

note: type: Plain text
en: Set the process ID or process group ID that will receive B<SIGIO> and B<SIGURG> signals for events on file descriptor I<fd> to the ID given in I<arg>.  A process ID is specified as a positive value; a process group ID is specified as a negative value.  Most commonly, the calling process specifies itself as the owner (that is, I<arg> is specified as B<getpid>(2)).
fr: Définir le PID ou l'identifiant du groupe de processus qui recevront les signaux B<SIGIO> et B<SIGURG> pour les événements concernant le descripteur I<fd>, à l'identifiant fourni par I<arg>. Les groupes de processus sont formulés en tant que valeurs négatives. En général, le processus appelant indique son propre PID comme argument (I<arg> est donc B<getpid>(2)).

note: From glibc.info: type: Plain text
en: If you set the B<O_ASYNC> status flag on a file descriptor by using the B<F_SETFL> command of B<fcntl>(), a B<SIGIO> signal is sent whenever input or output becomes possible on that file descriptor.  B<F_SETSIG> can be used to obtain delivery of a signal other than B<SIGIO>.  If this permission check fails, then the signal is silently discarded.
fr: Si vous définissez l'attribut B<O_ASYNC> sur un descripteur de fichier en utilisant la commande B<F_SETFL> de B<fcntl>(), un signal B<SIGIO> est envoyé dès que l'entrée ou la sortie sont possibles sur ce descripteur. B<F_SETSIG> peut être utilisé pour recevoir un autre signal que B<SIGIO>. Si la vérification de permissions échoue, le signal est ignoré silencieusement.

note: type: Plain text
en: Sending a signal to the owner process (group) specified by B<F_SETOWN> is subject to the same permissions checks as are described for B<kill>(2), where the sending process is the one that employs B<F_SETOWN> (but see BUGS below).
fr: L'envoi d'un signal au processus (ou groupe de processus) indiqué par B<F_SETOWN> est conditionné par les mêmes vérifications de permissions que l'envoi d'un signal par B<kill>(2), où le processus envoyant le signal est celui qui utilise B<F_SETOWN> (consultez la section BOGUES ci\(hydessous). Si cette vérification échoue, le signal est ignoré.

note: The following appears to be rubbish.  It doesn't seem to be true according to the kernel source, and I can write a program that gets a terminal-generated SIGIO even though it is not the foreground process group of the terminal. -- MTK, 8 Apr 05 If the file descriptor .I fd refers to a terminal devic
en: If the file descriptor I<fd> refers to a socket, B<F_SETOWN> also selects the recipient of B<SIGURG> signals that are delivered when out-of-band data arrives on that socket.  (B<SIGURG> is sent in any situation where B<select>(2)  would report the socket as having an "exceptional condition".)
fr: Si le descripteur I<fd> est une socket, B<F_SETOWN> permet également la réception de signaux B<SIGURG> lorsque des données hors\(hybande arrivent sur la socket. (B<SIGURG> est émis dans toutes les situations où l'appel B<select>(2) aurait indiqué que la socket est dans une «\ situation exceptionnelle\ ».)

note: type: Plain text
en: The following was true in 2.6.x kernels up to and including kernel 2.6.11:
fr: Le paragraphe ci-dessous était valide pour les noyaux 2.6.x, jusqu'au 2.6.11 inclus\ :

note: The relevant place in the (2.6) kernel source is the 'switch' in fs/fcntl.c::send_sigio_to_task() -- MTK, Apr 2005 send_sigurg()/send_sigurg_to_task() bypasses kill_fasync()/send_sigio()/send_sigio_to_task() to directly call send_group_sig_info() -- MTK, Apr 2005 (kernel 2.6.11) type: Plain text
en: If a nonzero value is given to B<F_SETSIG> in a multithreaded process running with a threading library that supports thread groups (e.g., NPTL), then a positive value given to B<F_SETOWN> has a different meaning: instead of being a process ID identifying a whole process, it is a thread ID identifying a specific thread within a process.  Consequently, it may be necessary to pass B<F_SETOWN> the result of B<gettid>(2)  instead of B<getpid>(2)  to get sensible results when B<F_SETSIG> is used.  (In current Linux threading implementations, a main thread's thread ID is the same as its process ID.  This means that a single-threaded program can equally use B<gettid>(2)  or B<getpid>(2)  in this scenario.)  Note, however, that the statements in this paragraph do not apply to the B<SIGURG> signal generated for out-of-band data on a socket: this signal is always sent to either a process or a process group, depending on the value given to B<F_SETOWN>.
fr: Si une valeur non nulle est passée à B<F_SETSIG> dans un processus multithreadé utilisant une bibliothèque de threads gérant les groupes de threads (par exemple NPTL), une valeur positive passée à B<F_SETOWN> a une signification différente\ : au lieu d'être un PID identifiant tout un processus, il s'agit d'un identifiant de thread, référant à un thread spécifique dans un processus. Par conséquent, il peut être nécessaire de passer à B<F_SETOWN> la valeur renvoyée par B<gettid>(2) plutôt que celle renvoyée par B<getpid>(2) pour obtenir les résultats souhaités si B<F_SETSIG> est utilisé. (Dans les implémentations actuelles des threads sous Linux, l'identifiant de thread (TID) du thread principal est son identifiant de processus. Cela signifie qu'un processus avec un seul thread peut utiliser indifféremment B<gettid>(2) ou B<getpid>(2).) Veuillez toutefois noter que les remarques de ce paragraphe ne s'appliquent pas au signal B<SIGURG> généré lorsque des données hors\(hybande sont disponibles sur une socket\ : ce signal est toujours envoyé soit à un processus, soit à un groupe de processus, selon la valeur donnée à B<F_SETOWN>.

note: type: Plain text
en: The above behavior was accidentally dropped in Linux 2.6.12, and won't be restored.  From Linux 2.6.32 onward, use B<F_SETOWN_EX> to target B<SIGIO> and B<SIGURG> signals at a particular thread.
fr: Le comportement ci-dessus a été supprimé par accident dans Linux 2.6.12, et ne sera pas remis. À partir de Linux 2.6.32, utilisez B<F_SETOWN_EX> pour envoyer les signaux B<SIGIO> et B<SIGURG> à un thread en particulier.

note: type: TP
en: B<F_GETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)
fr: B<F_GETOWN_EX> (struct f_owner_ex *) (depuis Linux 2.6.32)

note: type: Plain text
en: Return the current file descriptor owner settings as defined by a previous B<F_SETOWN_EX> operation.  The information is returned in the structure pointed to by I<arg>, which has the following form:
fr: Renvoyer les paramètres du propriétaire du descripteur de fichier actuel, tels que définis par une utilisation antérieure de B<F_SETOWN_EX>. L'information est renvoyée dans la structure pointée par I<arg>, qui a la forme suivante\ :

note: type: Plain text
en: The I<type> field will have one of the values B<F_OWNER_TID>, B<F_OWNER_PID>, or B<F_OWNER_PGRP>.  The I<pid> field is a positive integer representing a thread ID, process ID, or process group ID.  See B<F_SETOWN_EX> for more details.
fr: Le champ I<type> aura l'une des valeurs B<F_OWNER_TID>, B<F_OWNER_PID> ou B<F_OWNER_PGRP>. Le champ I<pid> est un entier positif représentant un identifiant de thread, de processus ou de groupe de processus. Consultez B<F_SETOWN_EX> pour plus de détails.

note: type: TP
en: B<F_SETOWN_EX> (struct f_owner_ex *) (since Linux 2.6.32)
fr: B<F_SETOWN_EX> (struct f_owner_ex *) (depuis Linux 2.6.32)

note: type: Plain text
en: This operation performs a similar task to B<F_SETOWN>.  It allows the caller to direct I/O availability signals to a specific thread, process, or process group.  The caller specifies the target of signals via I<arg>, which is a pointer to a I<f_owner_ex> structure.  The I<type> field has one of the following values, which define how I<pid> is interpreted:
fr: Cette opération effectue une tâche similaire à B<F_SETOWN>. Elle autorise l'appelant à diriger les signaux de disponibilité d'entrées-sorties vers un thread, un processus ou un groupe de processus spécifiques. L'appellant indique le destinataire des signaux avec I<arg>, qui est un pointeur vers une structure I<f_owner_ex>. Le champ I<type> possède l'une des valeurs suivantes, qui définit comment I<pid> est interprété\ :

note: type: Plain text
en: Send the signal to the thread whose thread ID (the value returned by a call to B<clone>(2)  or B<gettid>(2))  is specified in I<pid>.
fr: Envoyer le signal au thread dont l'identifiant (la valeur renvoyée par un appel à B<clone>(2) ou B<gettid>(2)) est indiqué par I<pid>.

note: type: Plain text
en: Send the signal to the process whose ID is specified in I<pid>.
fr: Envoyer le signal au processus dont l'identifiant est indiqué par I<pid>.

note: type: Plain text
en: Send the signal to the process group whose ID is specified in I<pid>.  (Note that, unlike with B<F_SETOWN>, a process group ID is specified as a positive value here.)
fr: Envoyer le signal au groupe de processus dont l'identifiant est indiqué par I<pid>. Notez que, à la différence de B<F_SETOWN>, un identifiant de groupe est indiqué ici avec une valeur positive.

note: type: Plain text
en: Return (as the function result)  the signal sent when input or output becomes possible.  A value of zero means B<SIGIO> is sent.  Any other value (including B<SIGIO>)  is the signal sent instead, and in this case additional info is available to the signal handler if installed with B<SA_SIGINFO>.  I<arg> is ignored.
fr: Renvoyer (comme résultat de la fonction) le numéro du signal émis lorsque l'entrée ou la sortie deviennent possibles. Une valeur nulle signifie l'émission de B<SIGIO>. Toute autre valeur (y compris B<SIGIO>) précise le signal émis, et des informations supplémentaires seront disponibles pour le gestionnaire s'il est installé avec B<SA_SIGINFO>. I<arg> est ignoré.

note: The following was true only up until 2.6.11: Additionally, passing a nonzero value to .B F_SETSIG changes the signal recipient from a whole process to a specific thread within a process. See the description of .B F_SETOWN for more details. type: Plain text
en: Set the signal sent when input or output becomes possible to the value given in I<arg>.  A value of zero means to send the default B<SIGIO> signal.  Any other value (including B<SIGIO>)  is the signal to send instead, and in this case additional info is available to the signal handler if installed with B<SA_SIGINFO>.
fr: Définir le signal à émettre lorsque l'entrée ou la sortie deviennent possibles à la valeur fournie par I<arg>. Une valeur nulle signifie l'émission de B<SIGIO>. Toute autre valeur (y compris B<SIGIO>) précise le signal à émettre, et des informations supplémentaires seront disponibles pour le gestionnaire s'il est installé avec B<SA_SIGINFO>.

note: type: Plain text
en: By using B<F_SETSIG> with a nonzero value, and setting B<SA_SIGINFO> for the signal handler (see B<sigaction>(2)), extra information about I/O events is passed to the handler in a I<siginfo_t> structure.  If the I<si_code> field indicates the source is B<SI_SIGIO>, the I<si_fd> field gives the file descriptor associated with the event.  Otherwise, there is no indication which file descriptors are pending, and you should use the usual mechanisms (B<select>(2), B<poll>(2), B<read>(2)  with B<O_NONBLOCK> set etc.) to determine which file descriptors are available for I/O.
fr: En utilisant B<F_SETSIG> avec une valeur non nulle, et en configurant B<SA_SIGINFO> pour le gestionnaire (consultez B<sigaction>(2)), des informations supplémentaires sur les événements d'entrées-sorties sont fournies au gestionnaire à travers une structure I<siginfo_t>. Si le champ I<si_code> indique que la source est B<SI_SIGIO>, le champ I<si_fd> fournit le descripteur du fichier concerné par l'événement. Sinon il n'y a pas d'indication du descripteur en attente, et il faut utiliser le mécanisme habituel (B<select>(2), B<poll>(2), B<read>(2) avec B<O_NONBLOCK> configuré etc.) pour déterminer quels descripteurs sont disponibles pour les entrées-sorties.

note: type: Plain text
en: By selecting a real time signal (value E<gt>= B<SIGRTMIN>), multiple I/O events may be queued using the same signal numbers.  (Queuing is dependent on available memory).  Extra information is available if B<SA_SIGINFO> is set for the signal handler, as above.
fr: En sélectionnant un signal temps réel (valeur E<gt>= B<SIGRTMIN>), de multiples événements d'entrées-sorties peuvent être mémorisés avec le même numéro (la mémorisation dépend de la mémoire disponible). Des informations supplémentaires sont disponibles, comme ci\(hydessus, si B<SA_SIGINFO> est configuré pour le gestionnaire.

note: See fs/fcntl.c::send_sigio_to_task() (2.4/2.6) sources -- MTK, Apr 05 type: Plain text
en: Note that Linux imposes a limit on the number of real-time signals that may be queued to a process (see B<getrlimit>(2)  and B<signal>(7))  and if this limit is reached, then the kernel reverts to delivering B<SIGIO>, and this signal is delivered to the entire process rather than to a specific thread.
fr: Noter que Linux impose une limite sur le nombre de signaux temps réel qui peuvent être mis en attente pour un processus (consultez B<getrlimit>(2) et B<signal>(7)), et si cette limite est atteinte, le noyau change de comportement et envoie B<SIGIO>, et ce signal est délivré au processus entier plutôt qu'au thread spécifique.

note: type: Plain text
en: Using these mechanisms, a program can implement fully asynchronous I/O without using B<select>(2)  or B<poll>(2)  most of the time.
fr: En utilisant ces mécanismes, un programme peut implémenter des entrées-sorties totalement asynchrones, la plupart du temps sans avoir besoin d'invoquer B<select>(2) ou B<poll>(2).

note: type: Plain text
en: The use of B<O_ASYNC> is specific to BSD and Linux.  The only use of B<F_GETOWN> and B<F_SETOWN> specified in POSIX.1 is in conjunction with the use of the B<SIGURG> signal on sockets.  (POSIX does not specify the B<SIGIO> signal.)  B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG>, and B<F_SETSIG> are Linux-specific.  POSIX has asynchronous I/O and the I<aio_sigevent> structure to achieve similar things; these are also available in Linux as part of the GNU C Library (Glibc).
fr: L'utilisation de B<O_ASYNC> est spécifique à BSD et Linux. La seule utilisation de B<F_GETOWN> et B<F_SETOWN> spécifiée dans POSIX.1 est en conjonction avec l’utilisation du signal B<SIGURG> sur les sockets (POSIX ne spécifie pas le signal B<SIGIO>). B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_GETSIG> et B<F_SETSIG> sont spécifiques à Linux. POSIX dispose d'entrées-sorties asynchrones et de la structure I<aio_sigevent> pour effectuer la même chose. Ceci est également disponible sous Linux dans la bibliothèque GNU C (Glibc).

note: type: SS
en: Leases
fr: Baux

note: type: Plain text
en: B<F_SETLEASE> and B<F_GETLEASE> (Linux 2.4 onward) are used (respectively) to establish a new lease, and retrieve the current lease, on the open file description referred to by the file descriptor I<fd>.  A file lease provides a mechanism whereby the process holding the lease (the "lease holder") is notified (via delivery of a signal)  when a process (the "lease breaker") tries to B<open>(2)  or B<truncate>(2)  the file referred to by that file descriptor.
fr: B<F_SETLEASE> et B<F_GETLEASE> (depuis Linux 2.4) servent respectivement à établir un nouveau bail et à consulter le bail actuel sur le descripteur de fichier indiqué par I<fd>. (NdT\ : je traduis «\ lease\ » par «\ bail\ », faute de terme plus technique.) Le bail sur un fichier fournit un mécanisme par lequel un processus détenteur du bail est averti (par délivrance d'un signal) lorsqu'un autre processus (le «\ casseur de bail\ ») essaye d'appeler B<open>(2) ou B<truncate>(2) sur le fichier pointé par ce descripteur de fichier

note: type: Plain text
en: Set or remove a file lease according to which of the following values is specified in the integer I<arg>:
fr: Définit ou supprime un bail de fichier en fonction de la valeur fournie dans l'entier I<arg>\ :

note: The following became true in kernel 2.6.10: See the man-pages-2.09 Changelog for further info. type: Plain text
en: Take out a read lease.  This will cause the calling process to be notified when the file is opened for writing or is truncated.  A read lease can be placed only on a file descriptor that is opened read-only.
fr: Prendre un bail en lecture. Le processus appelant sera prévenu lorsqu'un autre processus ouvrira le fichier en écriture ou le tronquera. Un bail en lecture ne peut être placé que sur un descripteur de fichier ouvert en lecture seule.

note: type: Plain text
en: Take out a write lease.  This will cause the caller to be notified when the file is opened for reading or writing or is truncated.  A write lease may be placed on a file only if there are no other open file descriptors for the file.
fr: Prendre un bail en écriture. Le processus appelant sera prévenu lorsqu'un autre processus ouvrira le fichier (en lecture ou écriture) ou le tronquera. Un bail en écriture ne peut être pris sur le fichier que s'il n'y a aucun autre descripteur de fichier ouvert pour le fichier.

note: type: Plain text
en: Remove our lease from the file.
fr: Supprimer le bail sur un fichier.

note: type: Plain text
en: Leases are associated with an open file description (see B<open>(2)).  This means that duplicate file descriptors (created by, for example, B<fork>(2)  or B<dup>(2))  refer to the same lease, and this lease may be modified or released using any of these descriptors.  Furthermore, the lease is released by either an explicit B<F_UNLCK> operation on any of these duplicate descriptors, or when all such descriptors have been closed.
fr: Les baux sont associés à une description de fichier ouvert (consultez B<open>(2)). Cela signifie que les descripteurs de fichier dupliqués (créé par, par exemple, B<fork>(2) ou B<dup>(2)) font référence au même bail, et que ce bail peut être modifié ou relâché par n'importe lequel de ces descripteurs. De plus, le bail est relâché soit par une opération B<F_UNLCK> explicite sur n'importe lequel de ces descripteurs dupliqués, soit lorsque tous ces descripteurs ont été fermés.

note: type: Plain text
en: Leases may be taken out only on regular files.  An unprivileged process may take out a lease only on a file whose UID (owner) matches the filesystem UID of the process.  A process with the B<CAP_LEASE> capability may take out leases on arbitrary files.
fr: Les baux ne peuvent être pris que sur des fichiers normaux. Un processus non privilégié ne peut prendre un bail que sur un fichier dont l'UID (le propriétaire) correspond au FS-UID du processus. Un processus possédant la capacité B<CAP_LEASE> peut prendre un bail sur n'importe quel fichier.

note: type: Plain text
en: Indicates what type of lease is associated with the file descriptor I<fd> by returning either B<F_RDLCK>, B<F_WRLCK>, or B<F_UNLCK>, indicating, respectively, a read lease , a write lease, or no lease.  I<arg> is ignored.
fr: Indique le type de bail possédé sur le descripteur de fichier I<fd> en renvoyant B<F_RDLCK>, B<F_WRLCK>, ou B<F_UNLCK>, signifiant respectivement que le processus appelant a un bail en lecture, écriture, ou pas de bail sur le fichier. I<arg> est ignoré.

note: type: Plain text
en: When a process (the "lease breaker") performs an B<open>(2)  or B<truncate>(2)  that conflicts with a lease established via B<F_SETLEASE>, the system call is blocked by the kernel and the kernel notifies the lease holder by sending it a signal (B<SIGIO> by default).  The lease holder should respond to receipt of this signal by doing whatever cleanup is required in preparation for the file to be accessed by another process (e.g., flushing cached buffers) and then either remove or downgrade its lease.  A lease is removed by performing an B<F_SETLEASE> command specifying I<arg> as B<F_UNLCK>.  If the lease holder currently holds a write lease on the file, and the lease breaker is opening the file for reading, then it is sufficient for the lease holder to downgrade the lease to a read lease.  This is done by performing an B<F_SETLEASE> command specifying I<arg> as B<F_RDLCK>.
fr: Lorsqu'un processus (le «\ casseur de bail\ » appelle B<open>(2) ou B<truncate>(2) en conflit avec un bail établi par B<F_SETLEASE>, l'appel système est bloqué par le noyau et le noyau avertit le processus tenant le bail par l'envoi d'un signal (B<SIGIO> par défaut). Le tenant du bail doit répondre à ce signal en effectuant tout le nettoyage nécessaire pour que le fichier soit accessible par un autre processus (par exemple en vidant des tampons internes) et en supprimant ou déclassant son bail. Un bail est supprimé en appelant la commande B<F_SETLEASE> avec I<arg> valant B<F_UNLCK>. Si le tenant du bail possède un bail en écriture sur le fichier et que le casseur de bail ouvre le fichier en lecture, il est suffisant que le tenant du bail déclasse le bail en un bail en lecture. Cela est effectué en appelant la commande B<F_SETLEASE> avec I<arg> valant B<F_RDLCK>.

note: type: Plain text
en: If the lease holder fails to downgrade or remove the lease within the number of seconds specified in I</proc/sys/fs/lease-break-time>, then the kernel forcibly removes or downgrades the lease holder's lease.
fr: Si le détenteur du bail n'arrive pas à le déclasser ou le supprimer avant le nombre de secondes indiqué dans I</proc/sys/fs/lease-break-time> alors le noyau supprimera ou déclassera de force le bail du processus qui le tient.

note: type: Plain text
en: Once a lease break has been initiated, B<F_GETLEASE> returns the target lease type (either B<F_RDLCK> or B<F_UNLCK>, depending on what would be compatible with the lease breaker)  until the lease holder voluntarily downgrades or removes the lease or the kernel forcibly does so after the lease break timer expires.
fr: Dès qu'un cassage de bail a été commencé, B<F_GETLEASE> renvoie le type de bail cible (B<F_RDLCK> ou B<F_UNLCK>, en fonction de ce qui serait compatible avec le casseur de bail) jusqu'à ce que le détenteur du bail ne le déclasse ou le supprime volontairement, ou que le noyau force à le faire après expiration du délai de cassage de bail.

note: type: Plain text
en: Once the lease has been voluntarily or forcibly removed or downgraded, and assuming the lease breaker has not unblocked its system call, the kernel permits the lease breaker's system call to proceed.
fr: Dès que le bail a été, de gré ou de force, résilié ou déclassé et en supposant que le casseur de bail n'a pas débloqué son appel système, le noyau permet à ce dernier de se dérouler.

note: type: Plain text
en: If the lease breaker's blocked B<open>(2)  or B<truncate>(2)  is interrupted by a signal handler, then the system call fails with the error B<EINTR>, but the other steps still occur as described above.  If the lease breaker is killed by a signal while blocked in B<open>(2)  or B<truncate>(2), then the other steps still occur as described above.  If the lease breaker specifies the B<O_NONBLOCK> flag when calling B<open>(2), then the call immediately fails with the error B<EWOULDBLOCK>, but the other steps still occur as described above.
fr: Si l'appel à B<open>(2) ou B<truncate>(2) du casseur de bail est interrompu par un gestionnaire de signal, l'appel système échoue avec l'erreur B<EINTR>, mais les autres étapes décrites ci\(hydessous se déroulent normalement. Si le casseur de bail est tué par un signal pendant que son appel système B<open>(2) ou B<truncate>(2) bloque, tout se déroule comme décrit ci\(hydessus. De même, si le casseur de bail utilise l'option B<O_NONBLOCK> de B<open>(2), l'appel retourne immédiatement avec l'erreur B<EWOULDBLOCK>, mais les autres étapes se déroulent comme décrit ci\(hydessus.

note: type: Plain text
en: The default signal used to notify the lease holder is B<SIGIO>, but this can be changed using the B<F_SETSIG> command to B<fcntl>().  If a B<F_SETSIG> command is performed (even one specifying B<SIGIO>), and the signal handler is established using B<SA_SIGINFO>, then the handler will receive a I<siginfo_t> structure as its second argument, and the I<si_fd> field of this argument will hold the descriptor of the leased file that has been accessed by another process.  (This is useful if the caller holds leases against multiple files).
fr: Le signal de notification par défaut pour le tenant du bail est B<SIGIO>, mais on peut le modifier avec la commande B<F_SETSIG> de la fonction B<fcntl>(). Si une commande B<F_SETSIG> est réalisée (même pour B<SIGIO>), et si le gestionnaire de signal est installé avec B<SA_SIGINFO>, alors il recevra une structure I<siginfo_t> en second argument, et le champ I<si_fd> contiendra le descripteur de fichier du bail où il y a eu une tentative d'accès par un autre processus. (Ceci sert si le processus tient des baux sur plusieurs fichiers.)

note: type: SS
en: File and directory change notification (dnotify)
fr: Notification de modification de fichier et de répertoire (dnotify)

note: type: Plain text
en: (Linux 2.4 onward)  Provide notification when the directory referred to by I<fd> or any of the files that it contains is changed.  The events to be notified are specified in I<arg>, which is a bit mask specified by ORing together zero or more of the following bits:
fr: (Depuis Linux 2.4) Fournit un avertissement lorsque le répertoire correspondant à I<fd> ou l'un des fichiers qu'il contient est modifié. Les événements à notifier sont précisés dans I<arg>, sous forme de masque regroupant par un OU binaire zéro, une ou plusieurs des constantes suivantes\ :

note: type: Plain text
en: A file was accessed (read, pread, readv)
fr: Accès à un fichier (read, pread, readv)

note: type: Plain text
en: A file was modified (write, pwrite, writev, truncate, ftruncate).
fr: Modification d'un fichier (write, pwrite, truncate, ftruncate).

note: type: Plain text
en: A file was created (open, creat, mknod, mkdir, link, symlink, rename).
fr: Création d'un fichier (open, creat, mknod, mkdir, link, symlink, rename).

note: type: Plain text
en: A file was unlinked (unlink, rename to another directory, rmdir).
fr: Suppression d'un fichier (unlink, renommage dans un autre répertoire, rmdir).

note: type: Plain text
en: A file was renamed within this directory (rename).
fr: Un fichier a été renommé dans le même répertoire (nerame).

note: type: Plain text
en: The attributes of a file were changed (chown, chmod, utime[s]).
fr: Les attributs d'un fichier ont été modifiés (chown, chmod, utime[s]).

note: type: Plain text
en: (In order to obtain these definitions, the B<_GNU_SOURCE> feature test macro must be defined before including I<any> header files.)
fr: (Afin d'obtenir ces définitions, la macro B<_GNU_SOURCE> doit être définie avant d'inclure I<tout> fichier d'en\(hytête).

note: type: Plain text
en: Directory notifications are normally "one-shot", and the application must reregister to receive further notifications.  Alternatively, if B<DN_MULTISHOT> is included in I<arg>, then notification will remain in effect until explicitly removed.
fr: Les notifications de répertoire sont habituellement uniques, et l'application doit réenregistrer une demande pour les notifications ultérieures. Inversement, si B<DN_MULTISHOT> est incluse dans I<arg>, les notifications resteront en effet jusqu'à une demande explicite de suppression.

note: The following does seem a poor API-design choice... type: Plain text
en: A series of B<F_NOTIFY> requests is cumulative, with the events in I<arg> being added to the set already monitored.  To disable notification of all events, make an B<F_NOTIFY> call specifying I<arg> as 0.
fr: Une série de B<F_NOTIFY> sont cumulés, les événements décrits dans I<arg> étant ajoutés à l'ensemble des événements déjà surveillés. Pour supprimer les notifications de tous les événements, il faut invoquer B<F_NOTIFY> avec I<arg> valant 0.

note: type: Plain text
en: Notification occurs via delivery of a signal.  The default signal is B<SIGIO>, but this can be changed using the B<F_SETSIG> command to B<fcntl>().  In the latter case, the signal handler receives a I<siginfo_t> structure as its second argument (if the handler was established using B<SA_SIGINFO>)  and the I<si_fd> field of this structure contains the file descriptor which generated the notification (useful when establishing notification on multiple directories).
fr: La notification se produit par l'occurrence d'un signal. Le signal par défaut est B<SIGIO>, mais on peut le changer avec la commande B<F_SETSIG> de B<fcntl>(). Dans ce cas, le gestionnaire de signal reçoit une structure I<siginfo_t> en second argument (si le gestionnaire a été installé avec B<SA_SIGINFO>) dont le champ I<si_fd> contient le descripteur du fichier qui a déclenché la notification (utile pour superviser plusieurs répertoires).

note: type: Plain text
en: Especially when using B<DN_MULTISHOT>, a real time signal should be used for notification, so that multiple notifications can be queued.
fr: En outre, avec B<DN_MULTISHOT>, un signal temps\(hyréel devrait être utilisé pour la notification pour pouvoir empiler les notifications successives.

note: type: Plain text
en: B<NOTE:> New applications should use the I<inotify> interface (available since kernel 2.6.13), which provides a much superior interface for obtaining notifications of filesystem events.  See B<inotify>(7).
fr: B<NOTE>\ : Les nouvelles applications devraient utiliser l'interface I<inotify> (disponible depuis Linux 2.6.13), qui fournit une bien meilleure interface pour obtenir des notifications d'événements sur le système de fichiers. Consultez B<inotify>(7).

note: type: SS
en: Changing the capacity of a pipe
fr: Changer la capacité d'un tube

note: type: TP
en: B<F_SETPIPE_SZ> (I<int>; since Linux 2.6.35)
fr: B<F_SETPIPE_SZ> (I<int> ; depuis Linux 2.6.35)

note: type: Plain text
en: Change the capacity of the pipe referred to by I<fd> to be at least I<arg> bytes.  An unprivileged process can adjust the pipe capacity to any value between the system page size and the limit defined in I</proc/sys/fs/pipe-max-size> (see B<proc>(5)).  Attempts to set the pipe capacity below the page size are silently rounded up to the page size.  Attempts by an unprivileged process to set the pipe capacity above the limit in I</proc/sys/fs/pipe-max-size> yield the error B<EPERM>; a privileged process (B<CAP_SYS_RESOURCE>)  can override the limit.  When allocating the buffer for the pipe, the kernel may use a capacity larger than I<arg>, if that is convenient for the implementation.  The B<F_GETPIPE_SZ> operation returns the actual size used.  Attempting to set the pipe capacity smaller than the amount of buffer space currently used to store data produces the error B<EBUSY>.
fr: Change la capacité du tube référencé par I<fd> pour contenir au moins I<arg> octets. Un processus non privilégié peut ajuster la capacité d'un tube à toute valeur comprise entre la taille de page du système et la limite définie dans I</proc/sys/fs/pipe-max-size> (consultez B<proc>(5)). Les tentatives pour définir la capacité du tube en dessous de la taille de page sont silencieusement arrondies à la taille de page. Les tentatives d'un processus non privilégié pour définir la capacité du tube au dessus de I</proc/sys/fs/pipe-max-size> renvoie l'erreur B<EPERM> ; un processus privilégié (B<CAP_SYS_RESOURCE>) peut passer outre cette limite. Quand il alloue le tampon pour le tube, le noyau peut utiliser une capacité supérieure à I<arg>, si cela est plus pratique pour l'implémentation. L'opération B<F_GETPIPE_SZ> renvoie la taille réellement utilisée. Les tentatives pour définir la capacité du tube en dessous de la capacité du tampon actuellement utilisé pour sauvegarder les données produit l'erreur B<EBUSY>.

note: type: TP
en: B<F_GETPIPE_SZ> (I<void>; since Linux 2.6.35)
fr: B<F_GETPIPE_SZ> (I<void> ; depuis Linux 2.6.35)

note: type: Plain text
en: Return (as the function result) the capacity of the pipe referred to by I<fd>.
fr: Renvoie (comme résultat de la fonction) la capacité du tube référencé par I<fd>.

note: type: Plain text
en: For a successful call, the return value depends on the operation:
fr: La valeur renvoyée par B<fcntl>() varie suivant le type d'opération\ :

note: type: Plain text
en: The new descriptor.
fr: Le nouveau descripteur.

note: type: Plain text
en: Value of file descriptor flags.
fr: Valeur des attributs du descripteur de fichier.

note: type: Plain text
en: Value of file status flags.
fr: Valeur des attributs d'état du fichier.

note: type: Plain text
en: Type of lease held on file descriptor.
fr: Le type bail tenu sur le descripteur de fichier.

note: type: Plain text
en: Value of descriptor owner.
fr: Le propriétaire du descripteur de fichier.

note: type: Plain text
en: Value of signal sent when read or write becomes possible, or zero for traditional B<SIGIO> behavior.
fr: La valeur du signal envoyé lorsque la lecture ou l'écriture deviennent possibles, ou zéro pour le comportement B<SIGIO> traditionnel.

note: type: Plain text
en: The pipe capacity.
fr: La capacité du tube.

note: type: TP
en: All other commands
fr: Toutes les autres commandes\ :

note: type: Plain text
en: Zero.
fr: Zéro.

note: type: Plain text
en: On error, -1 is returned, and I<errno> is set appropriately.
fr: En cas d'erreur, la valeur de retour est -1, et I<errno> contient le code d'erreur.

note: type: TP
en: B<EACCES> or B<EAGAIN>
fr: B<EACCES> ou B<EAGAIN>

note: type: Plain text
en: Operation is prohibited by locks held by other processes.
fr: L'opération est interdire en raison de verrous tenus par d'autres processus.

note: type: Plain text
en: The operation is prohibited because the file has been memory-mapped by another process.
fr: L'opération est impossible à cause d'une projection en mémoire effectuée par un autre processus.

note: type: Plain text
en: I<fd> is not an open file descriptor, or the command was B<F_SETLK> or B<F_SETLKW> and the file descriptor open mode doesn't match with the type of lock requested.
fr: I<fd> n'est pas un descripteur de fichier ouvert, ou la commande était B<F_SETLK> ou B<F_SETLKW> et le mode d'ouverture du descripteur de fichier ne correspond pas au type de verrou demandé.

note: type: Plain text
en: It was detected that the specified B<F_SETLKW> command would cause a deadlock.
fr: Le verrouillage B<F_SETLKW> conduirait à un blocage.

note: type: Plain text
en: I<lock> is outside your accessible address space.
fr: I<lock> se trouve en dehors de l'espace d'adressage.

note: type: Plain text
en: For B<F_SETLKW>, the command was interrupted by a signal; see B<signal>(7).  For B<F_GETLK> and B<F_SETLK>, the command was interrupted by a signal before the lock was checked or acquired.  Most likely when locking a remote file (e.g., locking over NFS), but can sometimes happen locally.
fr: Pour B<F_SETLKW>, la commande a été interrompue par un signal ; consultez B<signal>(7). Pour B<F_GETLK> et B<F_SETLK>, la commande a été interrompue par un signal avant la vérification ou l'acquisition du verrou. Se produit surtout lors d'un verrouillage distant (par exemple à travers NFS), mais peut également arriver localement.

note: type: Plain text
en: For B<F_DUPFD>, I<arg> is negative or is greater than the maximum allowable value.  For B<F_SETSIG>, I<arg> is not an allowable signal number.
fr: Pour B<F_DUPFD>, I<arg> est soit négatif, soit trop grand. Pour B<F_SETSIG>, I<arg> n'est pas un numéro de signal correct.

note: type: Plain text
en: For B<F_DUPFD>, the process already has the maximum number of file descriptors open.
fr: Pour B<F_DUPFD>, le processus a déjà ouvert le nombre maximal de descripteurs de fichier.

note: type: Plain text
en: Too many segment locks open, lock table is full, or a remote locking protocol failed (e.g., locking over NFS).
fr: Trop de verrous sont ouverts, ou la table des verrous est pleine, ou le verrouillage distant (par exemple par NFS) a échoué.

note: type: Plain text
en: Attempted to clear the B<O_APPEND> flag on a file that has the append-only attribute set.
fr: Essai d'effacement de l'attribut B<O_APPEND> sur un fichier, mais il est considéré comme en-ajout-seulement.

note: type: Plain text
en: SVr4, 4.3BSD, POSIX.1-2001.  Only the operations B<F_DUPFD>, B<F_GETFD>, B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK>, and B<F_SETLKW> are specified in POSIX.1-2001.
fr: SVr4, BSD\ 4.3, POSIX.1-2001. Seules les opérations B<F_DUPFD>, B<F_GETFD>, B<F_SETFD>, B<F_GETFL>, B<F_SETFL>, B<F_GETLK>, B<F_SETLK> et B<F_SETLKW> sont spécifiées dans POSIX.1-2001.

note: type: Plain text
en: B<F_GETOWN> and B<F_SETOWN> are specified in POSIX.1-2001.  (To get their definitions, define B<_BSD_SOURCE>, or B<_XOPEN_SOURCE> with the value 500 or greater, or define B<_POSIX_C_SOURCE> with the value 200809L or greater.)
fr: B<F_GETOWN> et B<F_SETOWN> sont spécifiées dans POSIX.1-2001. Pour activer ces définitions, vous devez définir B<_BSD_SOURCE>, ou B<_XOPEN_SOURCE> avec une valeur supérieure ou égale à 500, ou B<_POSIX_C_SOURCE> avec une valeur supérieure ou égale à 200809L.

note: type: Plain text
en: B<F_DUPFD_CLOEXEC> is specified in POSIX.1-2008.  (To get this definition, define B<_POSIX_C_SOURCE> with the value 200809L or greater, or B<_XOPEN_SOURCE> with the value 700 or greater.)
fr: B<F_GETOWN> est spécifiée dans POSIX.1-2008. Pour activer cette définition, vous devez  B<_POSIX_C_SOURCE> avec une valeur supérieure ou égale à 200809L, ou B<_XOPEN_SOURCE> avec une valeur supérieure ou égale à 700.

note: .PP SVr4 documents additional EIO, ENOLINK and EOVERFLOW error conditions. type: Plain text
en: B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE>, and B<F_SETLEASE> are Linux-specific.  (Define the B<_GNU_SOURCE> macro to obtain these definitions.)
fr: B<F_GETOWN_EX>, B<F_SETOWN_EX>, B<F_SETPIPE_SZ>, B<F_GETPIPE_SZ>, B<F_GETSIG>, B<F_SETSIG>, B<F_NOTIFY>, B<F_GETLEASE> et B<F_SETLEASE> sont spécifiques à Linux. (Définissez la macro B<_GNU_SOURCE> pour avoir ces définitions).

note: type: Plain text
en: The original Linux B<fcntl>()  system call was not designed to handle large file offsets (in the I<flock> structure).  Consequently, an B<fcntl64>()  system call was added in Linux 2.4.  The newer system call employs a different structure for file locking, I<flock64>, and corresponding commands, B<F_GETLK64>, B<F_SETLK64>, and B<F_SETLKW64>.  However, these details can be ignored by applications using glibc, whose B<fcntl>()  wrapper function transparently employs the more recent system call where it is available.
fr: L'appel système B<fcntl>() original de Linux n'a pas été conçu pour gérer les positions (dans la structure I<flock>) dans des fichiers de très grosse taille. En conséquence, Linux 2.4 a ajouté l'appel système B<fcntl64>(). Ce nouvel appel système utilise une structure différente de verrouillage de fichier, I<flock64>, ainsi que les commandes correspondantes B<F_GETLK64>, B<F_SETLK64> et B<F_SETLKW64>. Cependant, ces détails peuvent être ignorés par les applications qui utilisent la glibc, car sa fonction B<fcntl>() encapsule de manière transparente l'appel système le plus récent disponible.

note: type: Plain text
en: The errors returned by B<dup2>(2)  are different from those returned by B<F_DUPFD>.
fr: Les erreurs renvoyées par B<dup2>(2) ne sont pas les mêmes que celles renvoyées par B<F_DUPFD>.

note: type: Plain text
en: Since kernel 2.0, there is no interaction between the types of lock placed by B<flock>(2)  and B<fcntl>().
fr: Depuis le noyau 2.0, il n'y a pas d'interaction entre les verrous placés par B<flock>(2) et ceux de B<fcntl>().

note: e.g., Solaris 8 documents this field in fcntl(2), and Irix 6.5 documents it in fcntl(5).  mtk, May 2007 type: Plain text
en: Several systems have more fields in I<struct flock> such as, for example, I<l_sysid>.  Clearly, I<l_pid> alone is not going to be very useful if the process holding the lock may live on a different machine.
fr: Plusieurs systèmes ont d'autres champs dans I<struct flock> comme, par exemple, I<l_sysid>. Clairement, I<l_pid> seul ne sera pas très utile si le processus tenant le verrou s'exécute sur une autre machine.

note: FIXME . According to POSIX.1-2001, O_SYNC should also be modifiable via fcntl(2), but currently Linux does not permit this See http://bugzilla.kernel.org/show_bug.cgi?id=5994 type: Plain text
en: It is not possible to use B<F_SETFL> to change the state of the B<O_DSYNC> and B<O_SYNC> flags.  Attempts to change the state of these flags are silently ignored.
fr: Il n'est pas possible d'utiliser B<F_SETFL> pour modifier l'état des attributs B<O_DSYNC> et B<O_SYNC>. Une tentative de modification de ces attributs sera simplement ignorée.

note: glibc source: sysdeps/unix/sysv/linux/i386/sysdep.h mtk, Dec 04: some limited testing on alpha and ia64 seems to indicate that ANY negative PGID value will cause F_GETOWN to misinterpret the return as an error. Some other architectures seem to have the same range check as i386. type: Plain text
en: A limitation of the Linux system call conventions on some architectures (notably i386) means that if a (negative)  process group ID to be returned by B<F_GETOWN> falls in the range -1 to -4095, then the return value is wrongly interpreted by glibc as an error in the system call; that is, the return value of B<fcntl>()  will be -1, and I<errno> will contain the (positive) process group ID.  The Linux-specific B<F_GETOWN_EX> operation avoids this problem.  Since glibc version 2.11, glibc makes the kernel B<F_GETOWN> problem invisible by implementing B<F_GETOWN> using B<F_GETOWN_EX>.
fr: En raison d'une limitation des conventions d'appels système sur certaines architectures (en particulier i386), si B<F_GETOWN> renvoie un identifiant de groupe de processus compris entre -1 et -4095, la valeur de retour est interprétée par glibc comme une erreur\ ; la valeur de retour de B<fcntl>() sera -1 et I<errno> contiendra l'identifiant du groupe de processus (positif). Les opérations spécifiques à Linux B<F_SETOWN_EX> et B<F_GETOWN_EX> évitent ce problème. Depuis la glibc 2.11, glibc rend le problème avec B<F_GETOWN> invisible en implémentant B<F_GETOWN> par-dessus B<F_GETOWN_EX>.

note: type: Plain text
en: In Linux 2.4 and earlier, there is bug that can occur when an unprivileged process uses B<F_SETOWN> to specify the owner of a socket file descriptor as a process (group) other than the caller.  In this case, B<fcntl>()  can return -1 with I<errno> set to B<EPERM>, even when the owner process (group) is one that the caller has permission to send signals to.  Despite this error return, the file descriptor owner is set, and signals will be sent to the owner.
fr: Sous Linux 2.4 et précédents, lorsqu'un processus non privilégié utilise B<F_SETOWN> pour indiquer le propriétaire d'une socket, avec un identifiant de (groupe de) processus autre que celui de l'appelant, un bogue peut survenir. Dans ce cas, B<fcntl>() peut renvoyer -1, avec I<errno> positionné à B<EPERM>, même si l'appelant a le droit d'envoyer un signal à ce (groupe de) processus. En dépit de cette erreur, le propriétaire du descripteur de fichier est positionné, et les signaux seront envoyés au propriétaire.

note: http://marc.info/?l=linux-kernel&m=119013491707153&w=2 type: Plain text
en: The implementation of mandatory locking in all known versions of Linux is subject to race conditions which render it unreliable: a B<write>(2)  call that overlaps with a lock may modify data after the mandatory lock is acquired; a B<read>(2)  call that overlaps with a lock may detect changes to data that were made only after a write lock was acquired.  Similar races exist between mandatory locks and B<mmap>(2).  It is therefore inadvisable to rely on mandatory locking.
fr: L'implémentation du verrouillage obligatoire dans toutes les versions connues de Linux est sujet à des conditions de concurrence qui la rende non fiable : un appel à B<write>(2) qui chevauche un verrou peut modifier les données après que le verrouillage obligatoire a été acquis ; un appel à B<read>(2) qui chevauche un verrou peut détecter des modifications sur des données qui ont été faites seulement après qu'un verrou en écriture a été acquis. Des conditions de concurrence similaires existent entre les verrous obligatoires et B<mmap>(2). Il est donc déconseillé de faire confiance au verrouillage obligatoire.

note: type: Plain text
en: I<locks.txt>, I<mandatory-locking.txt>, and I<dnotify.txt> in the Linux kernel source directory I<Documentation/filesystems/> (on older kernels, these files are directly under the I<Documentation/> directory, and I<mandatory-locking.txt> is called I<mandatory.txt>)
fr: I<locks.txt>, I<mandatory-locking.txt> et I<dnotify.txt> dans le répertoire I<Documentation/filesystems/> des sources du noyau Linux. (Sur d'anciens noyaux, ces fichiers se trouvent dans le répertoire I<Documentation/> et I<mandatory-locking.txt> est appelé I<mandatory.txt>.)

note: type: Plain text
en: fexecve - execute program specified via file descriptor
fr: fexecve - Exécuter un programme indiqué par un descripteur de fichier

note: type: Plain text
en: B<fexecve>():
fr: B<fexecve>() :

note: POSIX.1-2008 specifies the O_EXEC flag for open as an alternative, but Linux doesn't support this flag yet. type: Plain text
en: B<fexecve>()  performs the same task as B<execve>(2), with the difference that the file to be executed is specified via a file descriptor, I<fd>, rather than via a pathname.  The file descriptor I<fd> must be opened read-only, and the caller must have permission to execute the file that it refers to.
fr: B<fexecve>() effectue la même tâche que B<execve>(2), excepté que le fichier à exécuter est indiqué a l’aide d’un descripteur de fichier, I<fd> au lieu d'un chemin. Le descripteur de fichier I<fd> doit être ouvert en lecture seule, et l'appelant doit avoir les permissions nécessaires pour exécuter le fichier lié au descripteur de fichier.

note: type: Plain text
en: A successful call to B<fexecve>()  never returns.  On error, the function does return, with a result value of -1, and I<errno> is set appropriately.
fr: En cas de réussite, la fonction B<fexecve>() ne revient jamais. En cas d'erreur, la fonction renvoie -1 et I<errno> est définie.

note: type: Plain text
en: Errors are as for B<execve>(2), with the following additions:
fr: Les erreurs sont les mêmes que pour B<execve>(2), avec en plus\ :

note: type: Plain text
en: I<fd> is not a valid file descriptor, or I<argv> is NULL, or I<envp> is NULL.
fr: I<fd> n'est pas un descripteur de fichier valable, ou I<argv> est NULL, ou I<envp> est NULL.

note: type: Plain text
en: The I</proc> filesystem could not be accessed.
fr: Impossible d'accéder au système de fichiers I</proc>.

note: type: Plain text
en: B<fexecve>()  is implemented since glibc 2.3.2.
fr: B<fexecve>() est disponible depuis la glibc\ 2.3.2.

note: type: Plain text
en: POSIX.1-2008.  This function is not specified in POSIX.1-2001, and is not widely available on other systems.  It is specified in POSIX.1-2008.
fr: POSIX.1-2008. Cette fonction n'est pas spécifiée dans POSIX.1-2001 et n'est que rarement disponible sur d'autres systèmes. Cette fonction est spécifiée dans POSIX.1-2008.

note: type: Plain text
en: On Linux, B<fexecve>()  is implemented using the B<proc>(5)  filesystem, so I</proc> needs to be mounted and available at the time of the call.
fr: Sous Linux, B<fexecve>() est implémentée avec le système de fichiers B<proc>(5), I</proc> doit donc être monté et disponible lors des appels à B<fexecve>().

note: type: Plain text
en: If I<fd> is a file descriptor that refers to an interpreter script and has been marked as close-on-exec (see the discussion of the B<FD_CLOEXEC> in B<fcntl>(2)), B<fexecve>()  will fail to execute the script, since, by the time the script interpreter tries to access the script file, I<fd> has already been closed.
fr: Si I<fd> est un descripteur de fichier qui réfère un script et a été marqué avec l'attribut « close-on-exec » (voir B<FD_CLOEXEC> dans B<fcntl>(2)), B<fexecve>() échouera à exécuter le script, puisque qu'au moment où l'interpréteur essaie d'accéder au fichier du script, I<fd> a déjà été fermé.

note: type: Plain text
en: The idea behind B<fexecve>()  is to allow the caller to verify (checksum) the contents of an executable before executing it.  Simply opening the file, checksumming the contents, and then doing an B<execve>(2)  would not suffice, since, between the two steps, the filename, or a directory prefix of the pathname, could have been exchanged (by, for example, modifying the target of a symbolic link).  B<fexecve>()  does not mitigate the problem that the I<contents> of a file could be changed between the checksumming and the call to B<fexecve>(); for that, the solution is to ensure that the permissions on the file prevent it from being modified by malicious users.
fr: L’idée derrière B<fexecve>() est de permettre à l’appelant de vérifier (avec une somme de contrôle) le contenu d’un exécutable avant de l’exécuter. Juste ouvrir le fichier et calculer la somme de contrôle du contenu avant de faire un B<execve>() ne suffirait pas puisque, entre les deux étapes, le nom du fichier, ou un préfixe de répertoire dans le nom de chemin, pourrait avoir été modifié (par exemple en modifiant la cible d’un lien symbolique). B<fexecve>() n’atténue pas le problème que le I<contenu> d’un fichier pourrait être modifié entre le calcul de la somme de contrôle et l’appel à B<fexecve>(). Pour cela, la solution est de s’assurer que les permissions sur le fichier l’empêchent d’être modifié par un utilisateur malveillant.

note: type: TH
en: 2013-02-11
fr: 11 février 2013

note: type: Plain text
en: flock - apply or remove an advisory lock on an open file
fr: flock - Placer ou enlever un verrou coopératif sur un fichier ouvert

note: type: Plain text
en: Apply or remove an advisory lock on the open file specified by I<fd>.  The argument I<operation> is one of the following:
fr: Place ou enlève un verrou consultatif sur un fichier ouvert dont le descripteur est I<fd>. Le paramètre I<operation> est l'un des suivants\ :

note: type: Plain text
en: Place a shared lock.  More than one process may hold a shared lock for a given file at a given time.
fr: Verrouillage partagé. Plusieurs processus peuvent disposer d'un verrouillage partagé simultanément sur un même fichier.

note: type: Plain text
en: Place an exclusive lock.  Only one process may hold an exclusive lock for a given file at a given time.
fr: Verrouillage exclusif. Un seul processus dispose d'un verrouillage exclusif sur un fichier, à un moment donné.

note: type: Plain text
en: Remove an existing lock held by this process.
fr: Déverrouillage d'un verrou tenu par le processus.

note: type: Plain text
en: A call to B<flock>()  may block if an incompatible lock is held by another process.  To make a nonblocking request, include B<LOCK_NB> (by ORing)  with any of the above operations.
fr: Un appel B<flock>() peut bloquer si un verrou incompatible est tenu par un autre processus. Pour que la requête soit non\(hybloquante, il faut inclure B<LOCK_NB> (par un I<OU> binaire «\ |\ » ) avec la constante précisant l'opération.

note: type: Plain text
en: A single file may not simultaneously have both shared and exclusive locks.
fr: Un même fichier ne peut pas avoir simultanément des verrous partagés et exclusifs.

note: type: Plain text
en: Locks created by B<flock>()  are associated with an open file table entry.  This means that duplicate file descriptors (created by, for example, B<fork>(2)  or B<dup>(2))  refer to the same lock, and this lock may be modified or released using any of these descriptors.  Furthermore, the lock is released either by an explicit B<LOCK_UN> operation on any of these duplicate descriptors, or when all such descriptors have been closed.
fr: Les verrous créés avec B<flock>() sont associés à un fichier, ou plus précisément une entrée de la table des fichiers ouverts. Ainsi, les descripteurs de fichier dupliqués (par exemple avec B<fork>(2) ou B<dup>(2)) réfèrent au même verrou, et celui\(hyci peut être relâché ou modifié à travers n'importe lequel des descripteurs. De plus, un verrou est relâché par une opération explicite B<LOCK_UN> sur l'un quelconque des descripteurs, ou lorsqu'ils ont tous été fermés.

note: type: Plain text
en: If a process uses B<open>(2)  (or similar) to obtain more than one descriptor for the same file, these descriptors are treated independently by B<flock>().  An attempt to lock the file using one of these file descriptors may be denied by a lock that the calling process has already placed via another descriptor.
fr: Si un processus utilise B<open>(2) (ou équivalent) plusieurs fois pour obtenir plusieurs descripteurs sur le même fichier, ces descripteurs sont traités indépendamment par B<flock>(). Une tentative de verrouiller le fichier avec l'un de ces descripteurs peut être refusée si le processus appelant a déjà placé un verrou en utilisant un autre descripteur.

note: type: Plain text
en: A process may hold only one type of lock (shared or exclusive)  on a file.  Subsequent B<flock>()  calls on an already locked file will convert an existing lock to the new lock mode.
fr: Un processus ne peut avoir qu'un seul type de verrou (partagé ou exclusif) sur un fichier. En conséquence un appel B<flock>() sur un fichier déjà verrouillé modifiera le type de verrouillage.

note: type: Plain text
en: Locks created by B<flock>()  are preserved across an B<execve>(2).
fr: Les verrous créés par B<flock>() sont conservé au travers d'un B<execve>(2).

note: type: Plain text
en: A shared or exclusive lock can be placed on a file regardless of the mode in which the file was opened.
fr: Un verrou partagé ou exclusif peut être placé sur un fichier quel que soit le mode d'ouverture du fichier.

note: type: Plain text
en: I<fd> is not an open file descriptor.
fr: I<fd> n'est pas un descripteur de fichier ouvert.

note: type: Plain text
en: While waiting to acquire a lock, the call was interrupted by delivery of a signal caught by a handler; see B<signal>(7).
fr: Durant l'attente pour acquérir le verrou, l'appel a été interrompu par un signal capturé par un gestionnaire ; consultez B<signal>(7).

note: type: Plain text
en: I<operation> is invalid.
fr: I<operation> est invalide.

note: type: Plain text
en: The kernel ran out of memory for allocating lock records.
fr: Le noyau n'a pas assez de mémoire pour les allocations de verrou.

note: type: Plain text
en: The file is locked and the B<LOCK_NB> flag was selected.
fr: Le fichier est verrouillé et l'attribut B<LOCK_NB> a été précisé.

note: type: Plain text
en: 4.4BSD (the B<flock>()  call first appeared in 4.2BSD).  A version of B<flock>(), possibly implemented in terms of B<fcntl>(2), appears on most UNIX systems.
fr: BSD\ 4.4 (l'appel système B<flock>() est apparu dans BSD\ 4.2). Une version de B<flock>() parfois implémenté à partir de B<fcntl>(2), est apparue sur la plupart des systèmes UNIX.

note: type: Plain text
en: B<flock>()  does not lock files over NFS.  Use B<fcntl>(2)  instead: that does work over NFS, given a sufficiently recent version of Linux and a server which supports locking.
fr: B<flock>() ne verrouille par les fichiers à travers NFS. Utilisez B<fcntl>(2) à la place\ : il fonctionne avec NFS si la version de Linux est suffisamment récente et si le serveur accepte les verrouillages.

note: type: Plain text
en: Since kernel 2.0, B<flock>()  is implemented as a system call in its own right rather than being emulated in the GNU C library as a call to B<fcntl>(2).  This yields true BSD semantics: there is no interaction between the types of lock placed by B<flock>()  and B<fcntl>(2), and B<flock>()  does not detect deadlock.
fr: Depuis le noyau 2.0, B<flock>() est implémenté par un appel système plutôt que d'être émulé par une routine de la bibliothèque C invoquant B<fcntl>(2). Ceci correspond à la véritable sémantique BSD\ : il n'y a pas d'interaction entre les verrous placés par B<flock>() et B<fcntl>(2), et B<flock>() ne détecte pas les cas de blocage (deadlock).

note: type: Plain text
en: B<flock>()  places advisory locks only; given suitable permissions on a file, a process is free to ignore the use of B<flock>()  and perform I/O on the file.
fr: B<flock>() place uniquement des verrous coopératifs\ : suivant les permissions du fichier un processus peut ignorer l'utilisation de B<flock>() et faire des entrées-sorties sur le fichier.

note: type: Plain text
en: B<flock>()  and B<fcntl>(2)  locks have different semantics with respect to forked processes and B<dup>(2).  On systems that implement B<flock>()  using B<fcntl>(2), the semantics of B<flock>()  will be different from those described in this manual page.
fr: Les sémantiques des verrous placés par B<flock>() et B<fcntl>(2) sont différentes en ce qui concerne B<fork>(2) et B<dup>(2). Sur les systèmes qui implémentent B<flock>() en utilisant B<fcntl>(2), la sémantique de B<flock>() ne sera pas celle décrite ici.

note: Kernel 2.5.21 changed things a little: during lock conversion it is now the highest priority process that will get the lock -- mtk type: Plain text
en: Converting a lock (shared to exclusive, or vice versa) is not guaranteed to be atomic: the existing lock is first removed, and then a new lock is established.  Between these two steps, a pending lock request by another process may be granted, with the result that the conversion either blocks, or fails if B<LOCK_NB> was specified.  (This is the original BSD behavior, and occurs on many other implementations.)
fr: La conversion d'un verrou (de partagé à exclusif et vice versa) n'est pas toujours atomique\ : tout d'abord le verrou existant est supprimé, puis un nouveau verrou est établi. Entre ces deux étapes, un verrou demandé par un autre processus peut être accordé, ce qui peut causer soit un blocage de la conversion, soit son échec, si B<LOCK_NB> était indiqué. (Ceci est le comportement BSD d'origine, et est partagé par de nombreuses implémentations.)

note: type: Plain text
en: I<Documentation/filesystems/locks.txt> in the Linux kernel source tree (I<Documentation/locks.txt> in older kernels)
fr: I<Documentation/filesystems/locks.txt> dans les sources du noyau Linux (I<Documentation/locks.txt> pour les anciens noyaux)

note: type: TH
en: 2013-03-12
fr: 12 mars 2013

note: type: Plain text
en: fork - create a child process
fr: fork - Créer un processus fils

note: type: Plain text
en: B<fork>()  creates a new process by duplicating the calling process.  The new process, referred to as the I<child>, is an exact duplicate of the calling process, referred to as the I<parent>, except for the following points:
fr: B<fork>() crée un nouveau processus en copiant le processus appelant. Le nouveau processus, qu'on appelle I<fils> («\ child\ »), est une copie exacte du processus appelant, qu'on appelle I<père> ou I<parent>, avec les exceptions suivantes\ :

note: type: Plain text
en: The child has its own unique process ID, and this PID does not match the ID of any existing process group (B<setpgid>(2)).
fr: Le fils a son propre identifiant de processus unique, et ce PID ne correspond à l'identifiant d'aucun groupe de processus existant (B<setpgid>(2)).

note: type: Plain text
en: The child's parent process ID is the same as the parent's process ID.
fr: L'identifiant de processus parent (PPID) du fils est l'identifiant de processus (PID) du père.

note: type: Plain text
en: The child does not inherit its parent's memory locks (B<mlock>(2), B<mlockall>(2)).
fr: Le fils n'hérite pas des verrouillages mémoire du père (B<mlock>(2), B<mlockall>(2)).

note: type: Plain text
en: Process resource utilizations (B<getrusage>(2))  and CPU time counters (B<times>(2))  are reset to zero in the child.
fr: Les utilisations de ressources (B<getrusage>(2)) et les compteurs de temps processeur (B<times>(2)) sont remis à zéro dans le fils.

note: type: Plain text
en: The child's set of pending signals is initially empty (B<sigpending>(2)).
fr: L'ensemble de signaux en attente dans le fils est initialement vide (B<sigpending>(2)).

note: type: Plain text
en: The child does not inherit semaphore adjustments from its parent (B<semop>(2)).
fr: Le fils n'hérite pas des opérations sur les sémaphores de son père (B<semop>(2)).

note: type: Plain text
en: The child does not inherit record locks from its parent (B<fcntl>(2)).
fr: Le fils n'hérite pas des verrous d'enregistrements de son père (B<fcntl>(2)).

note: type: Plain text
en: The child does not inherit timers from its parent (B<setitimer>(2), B<alarm>(2), B<timer_create>(2)).
fr: Le fils n'hérite pas des temporisations de son père (B<setitimer>(2), B<alarm>(2), B<timer_create>(2)).

note: type: Plain text
en: The child does not inherit outstanding asynchronous I/O operations from its parent (B<aio_read>(3), B<aio_write>(3)), nor does it inherit any asynchronous I/O contexts from its parent (see B<io_setup>(2)).
fr: Le fils n'hérite pas des opérations d'E/S asynchrones en cours de son père (B<aio_read>(3), B<aio_write>(3)) et n'hérite d'aucun contexte d'E/S asynchrone de son père (consultez B<io_setup>(2)).

note: type: Plain text
en: 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:
fr: Les attributs du processus listés ci\(hydessus sont tous spécifiés dans POSIX.1-2001. Les processus parent et fils diffèrent également par les propriétés spécifiques Linux suivantes\ :

note: type: Plain text
en: The child does not inherit directory change notifications (dnotify)  from its parent (see the description of B<F_NOTIFY> in B<fcntl>(2)).
fr: Le fils n'hérite pas des notifications de modification de répertoire (dnotify) de son père (voir la description de B<F_NOTIFY> dans B<fcntl>(2)).

note: type: Plain text
en: The B<prctl>(2)  B<PR_SET_PDEATHSIG> setting is reset so that the child does not receive a signal when its parent terminates.
fr: Le drapeau B<PR_SET_PDEATHSIG> de B<prctl>(2) est réinitialisé, de manière à ce que le fils ne reçoive pas de signal lorsque son père se termine.

note: type: Plain text
en: The default timer slack value is set to the parent's current timer slack value.  See the description of B<PR_SET_TIMERSLACK> in B<prctl>(2).
fr: La valeur de temporisation relâchée par défaut est définie à la valeur de temporisation relâchée actuelle de son père. Veuillez consulter la description de B<PR_SET_TIMERSLACK> dans B<prctl>(2).

note: type: Plain text
en: Memory mappings that have been marked with the B<madvise>(2)  B<MADV_DONTFORK> flag are not inherited across a B<fork>().
fr: Les projections en mémoire qui ont été marquées avec l'attribut B<MADV_DONTFORK> de B<madvise>(2) ne sont pas hérités lors d'un B<fork>().

note: type: Plain text
en: The termination signal of the child is always B<SIGCHLD> (see B<clone>(2)).
fr: Le signal de terminaison du fils est toujours B<SIGCHLD> (consultez B<clone>(2)).

note: type: Plain text
en: The port access permission bits set by B<ioperm>(2)  are not inherited by the child; the child must turn on any bits that it requires using B<ioperm>(2).
fr: Les bits de permission d'accès au port indiqués par B<ioperm>(2) ne sont pas hérités par le fils ; le fils doit activer avec B<ioperm>(2) les bits dont il a besoin.

note: type: Plain text
en: The child process is created with a single thread\(emthe one that called B<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 B<pthread_atfork>(3)  may be helpful for dealing with problems that this can cause.
fr: Le processus fils est créé avec un unique thread \(em celui qui a appelé B<fork>(). L'espace d'adressage virtuel complet du parent est copié dans le fils, y compris l'état des mutex, variables de condition, et autres objets de pthreads\ ; l'utilisation de B<pthread_atfork>(3) peut être utile pour traiter les problèmes que cela peut occasionner.

note: type: Plain text
en: The child inherits copies of the parent's set of open file descriptors.  Each file descriptor in the child refers to the same open file description (see B<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 B<F_SETOWN> and B<F_SETSIG> in B<fcntl>(2)).
fr: Le fils hérite de copies des descripteurs de fichier ouverts du père. Chaque descripteur de fichier du fils renvoie à la même description de fichier ouvert (consultez B<open>(2)) que le descripteur de fichier correspondant dans le processus parent. Cela signifie que les deux descripteurs partagent les attributs d'état du fichier, le décalage, et les attributs d'E/S liés aux signaux (voir la description de B<F_SETOWN> et B<F_SETSIG> dans B<fcntl>(2)).

note: type: Plain text
en: The child inherits copies of the parent's set of open message queue descriptors (see B<mq_overview>(7)).  Each descriptor in the child refers to the same open message queue description as the corresponding descriptor in the parent.  This means that the two descriptors share the same flags (I<mq_flags>).
fr: Le fils hérite de copies des descripteurs files de messages ouvertes dans le père (consultez B<mq_overview>(7)). Chaque descripteur dans le fils renvoie à la même description de file de messages ouverte que le descripteur correspondant dans le père. Cela signifie que les deux descripteurs partagent leurs attributs (I<mq_flags>).

note: type: Plain text
en: The child inherits copies of the parent's set of open directory streams (see B<opendir>(3)).  POSIX.1-2001 says that the corresponding directory streams in the parent and child I<may> share the directory stream positioning; on Linux/glibc they do not.
fr: Le fils hérite d'une copie de l'ensemble des flux de répertoire ouverts par le parent (consultez B<opendir>(3)). POSIX.1-2001 indique que les flux de répertoire correspondant dans le parent ou l'enfant I<peuvent> partager le positionnement du flux de répertoire ; sous Linux/glibc, ce n'est pas le cas.

note: type: Plain text
en: 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 I<errno> is set appropriately.
fr: En cas de succès, le PID du fils est renvoyé au parent, et 0 est renvoyé au fils. En cas d'échec -1 est renvoyé au parent, aucun processus fils n'est créé, et I<errno> contient le code d'erreur.

note: type: Plain text
en: B<fork>()  cannot allocate sufficient memory to copy the parent's page tables and allocate a task structure for the child.
fr: B<fork>() ne peut pas allouer assez de mémoire pour copier la table des pages du père et allouer une structure de tâche pour le fils.

note: type: Plain text
en: It was not possible to create a new process because the caller's B<RLIMIT_NPROC> resource limit was encountered.  To exceed this limit, the process must have either the B<CAP_SYS_ADMIN> or the B<CAP_SYS_RESOURCE> capability.
fr: Il n'a pas été possible de créer un nouveau processus car la limite ressource B<RLIMIT_NPROC> de l'appelant a été rencontrée. Pour franchir cette limite, le processus doit avoir au moins l'une des deux capacités B<CAP_SYS_ADMIN> ou B<CAP_SYS_RESOURCE>.

note: type: Plain text
en: B<fork>()  failed to allocate the necessary kernel structures because memory is tight.
fr: B<fork>() a échoué car le noyau n'a plus assez de mémoire.

note: e.g., arm (optionally), blackfin, c6x, frv, h8300, microblaze, xtensa type: Plain text
en: B<fork>()  is not supported on this platform (for example, hardware without a Memory-Management Unit).
fr: B<fork>()  n'est pas supporté sur cette plate-forme (par exemple sur du matériel sans unité de gestion mémoire).

note: type: Plain text
en: Under Linux, B<fork>()  is implemented using copy-on-write pages, so the only penalty that it incurs is the time and memory required to duplicate the parent's page tables, and to create a unique task structure for the child.
fr: Sous Linux, B<fork>() est implémenté 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\(hyci 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.

note: nptl/sysdeps/unix/sysv/linux/fork.c and does some magic to ensure that getpid(2) returns the right value. type: Plain text
en: Since version 2.3.3, rather than invoking the kernel's B<fork>()  system call, the glibc B<fork>()  wrapper that is provided as part of the NPTL threading implementation invokes B<clone>(2)  with flags that provide the same effect as the traditional system call.  (A call to B<fork>()  is equivalent to a call to B<clone>(2)  specifying I<flags> as just B<SIGCHLD>.)  The glibc wrapper invokes any fork handlers that have been established using B<pthread_atfork>(3).
fr: Depuis la version 2.3.3, plutôt que d'invoquer l'appel système B<fork>() du noyau, l'enveloppe B<fork>() de la glibc qui est fournie comme faisant partie de l'implémentation de threading NPTL invoque B<clone>(2) avec des attributs qui fournissent le même effet que l'appel système traditionnel (un appel à B<fork>() est équivalent à un appel à B<clone>(2) avec I<flags> valant exactement B<SIGCHLD>). L'enveloppe de la glibc invoque tous les gestionnaires de bifurcation (« fork ») établis avec B<pthread_atfork>(3).

note: type: Plain text
en: See B<pipe>(2)  and B<wait>(2).
fr: Consultez B<pipe>(2) et B<wait>(2).

note: type: Plain text
en: fpathconf, pathconf - get configuration values for files
fr: fpathconf, pathconf - Obtenir des valeurs de configuration de fichiers

note: type: Plain text
en: B<fpathconf>()  gets a value for the configuration option I<name> for the open file descriptor I<fd>.
fr: La fonction B<fpathconf>() récupère la valeur de l'option de configuration I<name> du descripteur de fichier ouvert I<fd>.

note: type: Plain text
en: B<pathconf>()  gets a value for configuration option I<name> for the filename I<path>.
fr: La fonction B<pathconf>() récupère la valeur de l'option de configuration I<name> du fichier I<path>.

note: type: Plain text
en: The corresponding macros defined in I<E<lt>unistd.hE<gt>> are minimum values; if an application wants to take advantage of values which may change, a call to B<fpathconf>()  or B<pathconf>()  can be made, which may yield more liberal results.
fr: Les macros correspondantes définies dans I<E<lt>unistd.hE<gt>> sont à valeur minimale\ ; si une application désire tirer partie des valeurs qui peuvent évoluer, un appel à B<fpathconf>() ou B<pathconf>() peut être fait, et renvoie des résultats plus souples.

note: type: Plain text
en: Setting I<name> equal to one of the following constants returns the following configuration options:
fr: Définir I<name> à l'une des constantes suivantes renvoie les options de configuration suivantes\ :

note: type: Plain text
en: returns the maximum number of links to the file.  If I<fd> or I<path> refer to a directory, then the value applies to the whole directory.  The corresponding macro is B<_POSIX_LINK_MAX>.
fr: renvoie le nombre maximal de liens sur le fichier. Si I<fd> ou I<path> correspondent à un répertoire, la valeur s'applique à l'ensemble du répertoire. La macro correspondante est B<_POSIX_LINK_MAX>.

note: type: Plain text
en: returns the maximum length of a formatted input line, where I<fd> or I<path> must refer to a terminal.  The corresponding macro is B<_POSIX_MAX_CANON>.
fr: renvoie la longueur maximale des lignes de saisie formatée\ ; I<fd> ou I<path> doit correspondre à un terminal. La macro correspondante est B<_POSIX_MAX_CANON>.

note: type: Plain text
en: returns the maximum length of an input line, where I<fd> or I<path> must refer to a terminal.  The corresponding macro is B<_POSIX_MAX_INPUT>.
fr: renvoie la longueur maximale d'une ligne de saisie\ ; I<fd> ou I<path> doit correspondre à un terminal. La macro correspondante est B<_POSIX_MAX_INPUT>.

note: type: Plain text
en: returns the maximum length of a filename in the directory I<path> or I<fd> that the process is allowed to create.  The corresponding macro is B<_POSIX_NAME_MAX>.
fr: renvoie la longueur maximale du nom d'un fichier que le processus a le droit de créer dans les répertoires I<path> ou I<fd>. La macro correspondante est B<_POSIX_NAME_MAX>.

note: type: Plain text
en: returns the maximum length of a relative pathname when I<path> or I<fd> is the current working directory.  The corresponding macro is B<_POSIX_PATH_MAX>.
fr: renvoie la longueur maximale des chemins relatifs lorsque I<path> ou I<fd> est le répertoire courant. La macro correspondante est B<_POSIX_PATH_MAX>.

note: type: Plain text
en: returns the size of the pipe buffer, where I<fd> must refer to a pipe or FIFO and I<path> must refer to a FIFO.  The corresponding macro is B<_POSIX_PIPE_BUF>.
fr: renvoie la taille du tampon d'un tube\ ; I<fd> doit correspondre à un tube ou une FIFO, et I<path> doit correspondre à une FIFO. La macro correspondante est B<_POSIX_PIPE_BUF>.

note: type: Plain text
en: returns nonzero if the B<chown>(2)  call may not be used on this file.  If I<fd> or I<path> refer to a directory, then this applies to all files in that directory.  The corresponding macro is B<_POSIX_CHOWN_RESTRICTED>.
fr: renvoie une valeur non nulle si B<chown>(2) ne peut pas être utilisé avec ce fichier. Si I<fd> ou I<path> est un répertoire, ceci s'applique à tous les fichiers de ce répertoire. La macro correspondante est B<_POSIX_CHOWN_RESTRICTED>.

note: type: Plain text
en: returns nonzero if accessing filenames longer than B<_POSIX_NAME_MAX> generates an error.  The corresponding macro is B<_POSIX_NO_TRUNC>.
fr: renvoie une valeur non nulle si l'accès à des noms de fichier plus long que B<_POSIX_NAME_MAX> déclenche une erreur. La macro correspondante est B<_POSIX_NO_TRUNC>.

note: type: Plain text
en: returns nonzero if special character processing can be disabled, where I<fd> or I<path> must refer to a terminal.
fr: renvoie une valeur non nulle si la gestion des caractères spéciaux peut être désactivée. I<fd> ou I<path> doit correspondre à un terminal.

note: type: Plain text
en: The limit is returned, if one exists.  If the system does not have a limit for the requested resource, -1 is returned, and I<errno> is unchanged.  If there is an error, -1 is returned, and I<errno> is set to reflect the nature of the error.
fr: La limite est renvoyée si elle existe. Si le système n'a pas de limite pour la ressource demandée, -1 est renvoyé et I<errno> est inchangé. S'il se produit une erreur, -1 est renvoyé, et I<errno> contient le code d'erreur.

note: type: Plain text
en: Files with name lengths longer than the value returned for I<name> equal to B<_PC_NAME_MAX> may exist in the given directory.
fr: Les fichiers dont la longueur du nom excède la valeur renvoyée pour I<name>, définie à B<_PC_NAME_MAX>, peuvent exister dans le répertoire considéré.

note: type: Plain text
en: Some returned values may be huge; they are not suitable for allocating memory.
fr: Certaines valeurs renvoyées peuvent être énormes\ ; elles ne sont pas utilisables pour réaliser des allocations mémoires.

note: type: TH
en: 2014-04-06
fr: 6 avril 2014

note: type: Plain text
en: fsync, fdatasync - synchronize a file's in-core state with storage device
fr: fsync, fdatasync - Synchroniser un fichier en mémoire avec le disque

note: type: Plain text
en: B<fsync>(): _BSD_SOURCE || _XOPEN_SOURCE
fr: B<fsync>() : _BSD_SOURCE || _XOPEN_SOURCE

note: _POSIX_C_SOURCE\ >=\ 200112L only since glibc 2.8 type: Plain text
en:          || /* since glibc 2.8: */ _POSIX_C_SOURCE\ E<gt>=\ 200112L
fr:          || /* depuis la glibc 2.8 : */ _POSIX_C_SOURCE\ E<gt>=\ 200112L

note: type: Plain text
en: B<fdatasync>(): _POSIX_C_SOURCE\ E<gt>=\ 199309L || _XOPEN_SOURCE\ E<gt>=\ 500
fr: B<fdatasync>() : _POSIX_C_SOURCE\ E<gt>=\ 199309L || _XOPEN_SOURCE\ E<gt>=\ 500

note: type: Plain text
en: B<fsync>()  transfers ("flushes") all modified in-core data of (i.e., modified buffer cache pages for) the file referred to by the file descriptor I<fd> to the disk device (or other permanent storage device) so that all changed information can be retrieved even after the system crashed or was rebooted.  This includes writing through or flushing a disk cache if present.  The call blocks until the device reports that the transfer has completed.  It also flushes metadata information associated with the file (see B<stat>(2)).
fr: B<fsync>() transfère toutes les données modifiées (c'est-à-dire les pages modifiées du cache mémoire) du fichier correspondant au descripteur I<fd> sur le disque (ou autre périphérique de stockage permanent) afin que toutes les informations modifiées puissent être récupérées même après un plantage ou un redémarrage du système. Cela nécessite d'écrire ou de purger le cache du disque, s'il en existe un. L'appel bloque jusqu'à ce que le périphérique indique que le transfert est terminé. Il transfère aussi les informations d'état du fichier (consultez B<stat>(2)).

note: type: Plain text
en: Calling B<fsync>()  does not necessarily ensure that the entry in the directory containing the file has also reached disk.  For that an explicit B<fsync>()  on a file descriptor for the directory is also needed.
fr: Un appel à B<fsync>() ne s'assure pas obligatoirement que les informations concernant le répertoire aient atteint le disque. Pour cela, un appel explicite de B<fsync>() sur le descripteur de fichier du répertoire est nécessaire.

note: type: Plain text
en: B<fdatasync>()  is similar to B<fsync>(), but does not flush modified metadata unless that metadata is needed in order to allow a subsequent data retrieval to be correctly handled.  For example, changes to I<st_atime> or I<st_mtime> (respectively, time of last access and time of last modification; see B<stat>(2))  do not require flushing because they are not necessary for a subsequent data read to be handled correctly.  On the other hand, a change to the file size (I<st_size>, as made by say B<ftruncate>(2)), would require a metadata flush.
fr: B<fdatasync>() est similaire à B<fsync>(), mais ne transfère pas les méta\(hydonnées, sauf si ces informations sont nécessaires à une récupération ultérieure de données. Par exemple, les modifications de I<st_atime> ou I<st_mtime> (heures de dernier accès et de dernière modification, respectivement\ ; consultez B<stat>(2)) ne sont pas transférées, car elles ne sont pas nécessaires à une lecture de données ultérieurement. En revanche, une modification de la taille du fichier (I<st_size>), par exemple effectuée par B<ftruncate>(2), nécessite un transfert des méta\(hydonnées.

note: type: Plain text
en: The aim of B<fdatasync>()  is to reduce disk activity for applications that do not require all metadata to be synchronized with the disk.
fr: Le but de B<fdatasync>() est de réduire l'activité disque pour les applications qui n'ont pas besoin d'une parfaite synchronisation des méta\(hydonnées avec le disque.

note: type: Plain text
en: On success, these system calls return zero.  On error, -1 is returned, and I<errno> is set appropriately.
fr: Ces appels système renvoient 0 en cas de succès, ou -1 en cas d'échec, auquel cas I<errno> contient le code d'erreur.

note: type: Plain text
en: I<fd> is not a valid open file descriptor.
fr: Le descripteur de fichier I<fd> est invalide.

note: type: Plain text
en: An error occurred during synchronization.
fr: Une erreur s'est produite pendant la synchronisation.

note: type: Plain text
en: I<fd> is bound to a special file which does not support synchronization.
fr: I<fd> est associé à un type de fichier spécial qui ne permet pas de synchronisation.

note: type: Plain text
en: 4.3BSD, POSIX.1-2001.
fr: BSD\ 4.3, POSIX.1-2001.

note: type: SH
en: AVAILABILITY
fr: DISPONIBILITÉ

note: POSIX.1-2001: It shall be defined to -1 or 0 or 200112L. -1: unavailable, 0: ask using sysconf(). glibc defines them to 1. type: Plain text
en: On POSIX systems on which B<fdatasync>()  is available, B<_POSIX_SYNCHRONIZED_IO> is defined in I<E<lt>unistd.hE<gt>> to a value greater than 0.  (See also B<sysconf>(3).)
fr: Sur les systèmes POSIX sur lesquels B<fdatasync>() est disponible, la constante symbolique B<_POSIX_SYNCHRONIZED_IO> est définie dans I<E<lt>unistd.hE<gt>> comme étant une valeur supérieure à 0. (Consultez aussi B<sysconf>(3).)

note: type: Plain text
en: On some UNIX systems (but not Linux), I<fd> must be a I<writable> file descriptor.
fr: Sur certains systèmes UNIX (mais pas Linux), I<fd> doit être un descripteur de fichiers accessible en écriture.

note: type: Plain text
en: In Linux 2.2 and earlier, B<fdatasync>()  is equivalent to B<fsync>(), and so has no performance advantage.
fr: Sous Linux 2.2 et précédents, B<fdatasync>() est équivalent à B<fsync>(), et n'apporte donc aucun avantage en performance.

note: type: Plain text
en: The B<fsync>()  implementations in older kernels and lesser used filesystems does not know how to flush disk caches.  In these cases disk caches need to be disabled using B<hdparm>(8)  or B<sdparm>(8)  to guarantee safe operation.
fr: Les implémentations de la fonction B<fsync>() dans les vieux noyaux et les systèmes de fichiers les moins utilisés ne savent pas comment vider les caches disque. Dans ces situations, les caches disque ont besoin d'être désactivés avec B<hdparm>(8)  ou B<sdparm>(8)  afin de garantir la sûreté des opérations.

note: type: TH
en: 2012-03-20
fr: 20 mars 2012

note: type: Plain text
en: get_nprocs, get_nprocs_conf - get number of processors
fr: get_nprocs, get_nprocs_conf - Obtenir le nombre de processeurs

note: type: Plain text
en: The function B<get_nprocs_conf>()  returns the number of processors configured by the operating system.
fr: La fonction B<get_nprocs_conf>() renvoie le nombre de processeurs configurés.

note: type: Plain text
en: The function B<get_nprocs>()  returns the number of processors currently available in the system.  This may be less than the number returned by B<get_nprocs_conf>()  because processors may be offline (e.g., on hotpluggable systems).
fr: La fonction B<get_nprocs>() renvoie le nombre de processeurs actuellement disponibles sur le système. Cela peut être inférieur au nombre renvoyé par B<get_nprocs_conf>() parce que des processeurs pourraient être hors-lignes (par exemple sur des systèmes permettant le branchement à chaud).

note: type: Plain text
en: As given in DESCRIPTION.
fr: conforme à la B<DESCRIPTION>.

note: type: Plain text
en: These functions are GNU extensions.
fr: Ces fonctions sont des extensions GNU.

note: glibc 2.15 type: Plain text
en: The current implementation of these functions is rather expensive, since they open and parse files in the I</sys> filesystem each time they are called.
fr: L'implémentation actuelle de ces fonctions est plutôt coûteuse, puisqu'elles ouvrent et parcourent des fichiers du système de fichiers I</sys> à chaque fois qu'elles sont appelées.

note: type: Plain text
en: The following B<sysconf>(3)  calls make use of the functions documented on this page to return the same information.
fr: Les appels B<sysconf>(3) suivants utilisent les fonctions documentées sur cette page pour renvoyer les mêmes renseignements.

note: type: Plain text
en:     np = sysconf(_SC_NPROCESSORS_CONF);     /* processors configured */
        np = sysconf(_SC_NPROCESSORS_ONLN);     /* processors available */
fr:     np = sysconf(_SC_NPROCESSORS_CONF);     /* processeurs configurés */
        np = sysconf(_SC_NPROCESSORS_ONLN);     /* processeurs disponibles */

note: type: Plain text
en: The following example shows how B<get_nprocs>()  and B<get_nprocs_conf>()  can be used.
fr: L'exemple suivant montre une façon d'utiliser B<get_nprocs>() et B<get_nprocs_conf>().

note: type: Plain text
en: int
    main(int argc, char *argv[])
    {
        printf("This system has %d processors configured and "
                "%d processors available.\en",
                get_nprocs_conf(), get_nprocs());
        return 0;
    }
fr: int
    main(int argc, char *argv[])
    {
        printf("Ce système dispose de %d processeurs configurés et "
                "%d processeurs disponibles.\en",
                get_nprocs_conf(), get_nprocs());
        return 0;
    }

note: type: TH
en: 2012-07-13
fr: 13 juillet 2012

note: type: Plain text
en: get_thread_area - get a thread-local storage (TLS) area
fr: get_thread_area - Obtenir une zone de stockage local pour thread (TLS)

note: type: Plain text
en: I<Note>: There is no glibc wrapper for this system call; see NOTES.
fr: I<Remarque> : il n'existe pas de fonction glibc autour de cet appel système ; consultez B<NOTES>.

note: type: Plain text
en: B<get_thread_area>()  returns an entry in the current thread's thread-local storage (TLS) array.  The index of the entry corresponds to the value of I<u_info-E<gt>entry_number>, passed in by the user.  If the value is in bounds, B<get_thread_area>()  copies the corresponding TLS entry into the area pointed to by I<u_info>.
fr: B<get_thread_area>() renvoie une entrée dans la table de stockage local des threads (TLS). L'index de cette entrée correspond à la valeur de I<u_info-E<gt>entry_number>, transmise par l'utilisateur. Si la valeur est dans les limites correctes, B<get_thread_area>() copie l'entrée TLS correspondante dans la zone pointée par I<u_info>.

note: type: Plain text
en: B<get_thread_area>()  returns 0 on success.  Otherwise, it returns -1 and sets I<errno> appropriately.
fr: B<get_thread_area>() renvoie 0 s'il réussit. Sinon, il renvoie -1 et configure I<errno> avec le code d'erreur approprié.

note: type: Plain text
en: I<u_info> is an invalid pointer.
fr: I<u_info> est un pointeur invalide.

note: type: Plain text
en: I<u_info-E<gt>entry_number> is out of bounds.
fr: I<u_info-E<gt>entry_number> est hors des limites.

note: type: Plain text
en: A version of B<get_thread_area>()  first appeared in Linux 2.5.32.
fr: Une version de B<get_thread_area>() est apparue dans Linux 2.5.32.

note: type: Plain text
en: B<get_thread_area>()  is Linux-specific and should not be used in programs that are intended to be portable.
fr: B<get_thread_area>() est spécifique à Linux et ne doit pas être employé dans un programme conçu pour être portable.

note: type: Plain text
en: Glibc does not provide a wrapper for this system call, since it is generally intended for use only by threading libraries.  In the unlikely event that you want to call it directly, use B<syscall>(2).
fr: La glibc ne fournit pas de fonction autour de cet appel système, puisqu'il a normalement pour seul but d'être utilisé dans les bibliothèques de threads. Au cas improbable où vous voudriez l'appeler directement, utilisez B<syscall>(2).

note: type: Plain text
en: getcwd, getwd, get_current_dir_name - get current working directory
fr: getcwd, getwd, get_current_dir_name - Obtenir le répertoire de travail actuel

note: type: Plain text
en: B<get_current_dir_name>():
fr: B<get_current_dir_name>() :

note: type: Plain text
en: B<getwd>():
fr: B<getwd>() :

note: type: Plain text
en: Before glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\ E<gt>=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED
fr: Avant la glibc 2.12 : _BSD_SOURCE || _XOPEN_SOURCE\ E<gt>=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED

note: type: Plain text
en: These functions return a null-terminated string containing an absolute pathname that is the current working directory of the calling process.  The pathname is returned as the function result and via the argument I<buf>, if present.
fr: Ces fonctions renvoient une chaîne terminée par une octet nul contenant un chemin absolu correspondant au répertoire de travail actuel du processus appelant. Le chemin est renvoyé comme résultat de la fonction et par le paramètre I<buf>, s'il est présent.

note: type: Plain text
en: The B<getcwd>()  function copies an absolute pathname of the current working directory to the array pointed to by I<buf>, which is of length I<size>.
fr: La fonction B<getcwd>() copie le chemin d'accès absolu du répertoire de travail courant dans la chaîne pointée par I<buf>, qui est de longueur I<size>.

note: type: Plain text
en: If the length of the absolute pathname of the current working directory, including the terminating null byte, exceeds I<size> bytes, NULL is returned, and I<errno> is set to B<ERANGE>; an application should check for this error, and allocate a larger buffer if necessary.
fr: Si la taille du chemin absolu du répertoire de travail en cours, caractère nul de fin compris, dépasse I<size> octets, la fonction renvoie NULL et I<errno> contient le code d'erreur B<ERANGE>. Une application doit détecter cette erreur et allouer un tampon plus grand si besoin est.

note: type: Plain text
en: As an extension to the POSIX.1-2001 standard, Linux (libc4, libc5, glibc)  B<getcwd>()  allocates the buffer dynamically using B<malloc>(3)  if I<buf> is NULL.  In this case, the allocated buffer has the length I<size> unless I<size> is zero, when I<buf> is allocated as big as necessary.  The caller should B<free>(3)  the returned buffer.
fr: Comme une extension de la norme POSIX.1-2001, la version Linux (libc4, libc5, glibc) de B<getcwd>() alloue le tampon dynamiquement avec B<malloc>(3), si I<buf> est NULL. Dans ce cas, le tampon alloué a la longueur I<size> à moins que I<size> soit égal à zéro, auquel cas I<buf> est alloué avec la taille nécessaire. L'appelant doit libérer avec B<free>(3) le tampon renvoyé.

note: type: Plain text
en: B<get_current_dir_name>()  will B<malloc>(3)  an array big enough to hold the absolute pathname of the current working directory.  If the environment variable B<PWD> is set, and its value is correct, then that value will be returned.  The caller should B<free>(3)  the returned buffer.
fr: B<get_current_dir_name>() allouera avec B<malloc>(3) une chaîne suffisamment grande pour contenir le nom du chemin absolu du répertoire de travail courant. Si la variable d'environnement B<PWD> est configurée, et correcte, cette valeur sera renvoyée. L'appelant doit libérer avec B<free>(3) le tampon renvoyé.

note: type: Plain text
en: B<getwd>()  does not B<malloc>(3)  any memory.  The I<buf> argument should be a pointer to an array at least B<PATH_MAX> bytes long.  If the length of the absolute pathname of the current working directory, including the terminating null byte, exceeds B<PATH_MAX> bytes, NULL is returned, and I<errno> is set to B<ENAMETOOLONG>.  (Note that on some systems, B<PATH_MAX> may not be a compile-time constant; furthermore, its value may depend on the filesystem, see B<pathconf>(3).)  For portability and security reasons, use of B<getwd>()  is deprecated.
fr: B<getwd>() n'allouera aucune mémoire (avec B<malloc>(3)). Le paramètre I<buf> doit être un pointeur sur une chaîne comportant au moins B<PATH_MAX> octets. Si la longueur du chemin absolu du répertoire de travail actuel, caractère nul de fin compris, dépasse B<PATH_MAX> octets, NULL est renvoyé et I<errno> prend la valeur B<ENAMETOOLONG>. Notez que sur certains système, B<PATH_MAX> peut ne pas être une constante connue à la compilation ; de plus, sa valeur peut dépendre du système de fichiers, voire être illimitée, consultez B<pathconf>(3). Pour des raisons de portabilité et de sécurité, l'utilisation de B<getwd>() est déconseillée.

note: type: Plain text
en: On success, these functions return a pointer to a string containing the pathname of the current working directory.  In the case B<getcwd>()  and B<getwd>()  this is the same value as I<buf>.
fr: En cas de succès, ces fonctions renvoient un pointeur vers une chaîne contenant le chemin du répertoire de travail en courant. Dans le cas de B<getcwd>() et B<getwd>() il s'agit de la même valeur que I<buf>.

note: type: Plain text
en: On failure, these functions return NULL, and I<errno> is set to indicate the error.  The contents of the array pointed to by I<buf> are undefined on error.
fr: En cas d'échec, ces fonctions renvoient NULL, et remplissent I<errno> avec le code d'erreur. Le contenu de la chaîne pointée par I<buf> est indéfini en cas d'erreur.

note: type: Plain text
en: Permission to read or search a component of the filename was denied.
fr: Impossible de lire ou de parcourir un composant du chemin d'accès.

note: type: Plain text
en: I<buf> points to a bad address.
fr: I<buf> pointe sur une adresse illégale.

note: type: Plain text
en: The I<size> argument is zero and I<buf> is not a null pointer.
fr: L'argument I<size> vaut zéro et I<buf> n'est pas un pointeur NULL.

note: type: Plain text
en: B<getwd>(): I<buf> is NULL.
fr: B<getwd>()\ : I<buf> est NULL.

note: type: Plain text
en: B<getwd>(): The size of the null-terminated absolute pathname string exceeds B<PATH_MAX> bytes.
fr: B<getwd>() : La taille de la chaîne, terminée par un octet nul, du chemin absolu dépasse B<PATH_MAX> octets.

note: type: Plain text
en: The current working directory has been unlinked.
fr: Le répertoire en cours a été supprimé.

note: type: Plain text
en: The I<size> argument is less than the length of the absolute pathname of the working directory, including the terminating null byte.  You need to allocate a bigger array and try again.
fr: Le paramètre I<size> est inférieur à la longueur du nom du chemin absolu du répertoire de travail, caractère nul de fin compris. Allouez un tampon plus grand et réessayez.

note: type: Plain text
en: B<getcwd>()  conforms to POSIX.1-2001.  Note however that POSIX.1-2001 leaves the behavior of B<getcwd>()  unspecified if I<buf> is NULL.
fr: B<getcwd>() se conforme à POSIX.1-2001. Notez cependant que POSIX.1-2001 laisse le comportement de B<getcwd>() non spécifié si I<buf> est NULL.

note: type: Plain text
en: B<getwd>()  is present in POSIX.1-2001, but marked LEGACY.  POSIX.1-2008 removes the specification of B<getwd>().  Use B<getcwd>()  instead.  POSIX.1-2001 does not define any errors for B<getwd>().
fr: B<getwd>() est présent dans POSIX.1-2001, mais marquée « LEGACY ». POSIX.1-2008 supprime la spécification de B<getwd>() et POSIX.1-2001 ne définit aucune erreur pour B<getwd>(). Utilisez B<getcwd>() à la place.

note: type: Plain text
en: B<get_current_dir_name>()  is a GNU extension.
fr: B<get_current_dir_name>() est une extension GNU.

note: type: Plain text
en: Under Linux, the function B<getcwd>()  is a system call (since 2.1.92).  On older systems it would query I</proc/self/cwd>.  If both system call and proc filesystem are missing, a generic implementation is called.  Only in that case can these calls fail under Linux with B<EACCES>.
fr: Sous Linux, la fonction B<getcwd>() est un appel système (depuis le 2.1.92). Sur des systèmes plus anciens, elle interrogerait I</proc/self/cwd>. Si l'appel système et le système de fichiers proc sont absents, une implémentation générique est utilisée. Dans ce cas seulement la fonction peut renvoyer B<EACCES> sous Linux.

note: type: Plain text
en: These functions are often used to save the location of the current working directory for the purpose of returning to it later.  Opening the current directory (".") and calling B<fchdir>(2)  to return is usually a faster and more reliable alternative when sufficiently many file descriptors are available, especially on platforms other than Linux.
fr: Ces fonctions sont souvent utilisées pour sauver le répertoire de travail afin d'y revenir plus tard. Ouvrir le répertoire courant («\ .\ ») et appeler B<fchdir>(2) pour y revenir est habituellement une alternative plus rapide et plus fiable (surtout sur d'autres systèmes que Linux) si l'on dispose de suffisamment de descripteurs de fichier.

note: type: TH
en: 2012-10-25
fr: 25 octobre 2012

note: type: Plain text
en: getdomainname, setdomainname - get/set NIS domain name
fr: getdomainname, setdomainname - Lire et écrire le nom de domaine NIS

note: type: Plain text
en: B<getdomainname>(), B<setdomainname>():
fr: B<getdomainname>(), B<setdomainname>()\ :

note: type: Plain text
en: These functions are used to access or to change the NIS domain name of the host system.
fr: Ces fonctions sont utilisées pour obtenir ou changer le nom de domaine NIS de l'hôte système.

note: type: Plain text
en: B<setdomainname>()  sets the domain name to the value given in the character array I<name>.  The I<len> argument specifies the number of bytes in I<name>.  (Thus, I<name> does not require a terminating null byte.)
fr: B<setdomainname>() fice le nom de domaine à la valeur fournie dans le tableau de caractères I<name>. Le paramètre I<len> indique le nombre d'octets de I<name> (I<name> n'a donc pas à se terminer par un caractère nul).

note: type: Plain text
en: B<getdomainname>()  returns the null-terminated domain name in the character array I<name>, which has a length of I<len> bytes.  If the null-terminated domain name requires more than I<len> bytes, B<getdomainname>()  returns the first I<len> bytes (glibc) or gives an error (libc).
fr: Ces deux fonctions servent à lire ou à changer le nom de domaine de l'hôte concerné. Si le nom de domaine, suivi d'un caractère nul, nécessite plus de I<len> octets pour être stocké, B<getdomainname>() renvoie les I<len> premiers octets (glibc), ou produit une erreur (libc).

note: type: Plain text
en: B<setdomainname>()  can fail with the following errors:
fr: B<setdomainname>() peut échouer avec les erreurs suivantes :

note: type: Plain text
en: I<name> pointed outside of user address space.
fr: I<name> pointe en\(hydehors de l'espace d'adressage utilisateur.

note: type: Plain text
en: I<len> was negative or too large.
fr: I<len> est négatif ou trop large.

note: type: Plain text
en: the caller is unprivileged (Linux: does not have the B<CAP_SYS_ADMIN> capability).
fr: l'appelant n'est pas privilégié (Linux\ : n'a pas la capacité B<CAP_SYS_ADMIN>).

note: type: Plain text
en: B<getdomainname>()  can fail with the following errors:
fr: B<getdomainname>() peut échouer avec les erreurs suivantes :

note: type: Plain text
en: For B<getdomainname>()  under libc: I<name> is NULL or I<name> is longer than I<len> bytes.
fr: Avec B<getdomainname>() et la Libc\ : I<name> est NULL ou I<name> est plus long que I<len>.

note: But they appear on most systems... type: Plain text
en: POSIX does not specify these calls.
fr: Ces fonctions ne sont pas spécifiées par POSIX.

note: type: Plain text
en: Since Linux 1.0, the limit on the length of a domain name, including the terminating null byte, is 64 bytes.  In older kernels, it was 8 bytes.
fr: Depuis Linux 1.0, la limite sur la taille d'un nom de domaine, octet nul de fin compris, est de 64 octets. Dans les noyaux plus anciens, elle était de 8 octets.

note: type: Plain text
en: On most Linux architectures (including x86), there is no B<getdomainname>()  system call; instead, glibc implements B<getdomainname>()  as a library function that returns a copy of the I<domainname> field returned from a call to B<uname>(2).
fr: Sur la plupart des architectures Linux (x86 incluse), il n'y a pas d'appel système B<getdomainname>() ; à la place, la glibc implémente B<getdomainname>() comme une fonction de bibliothèque qui renvoie une copie du champ I<domainname> renvoyé par un appel à B<uname>(2).

note: type: TH
en: 2013-02-05
fr: 5 février 2013

note: type: Plain text
en: getdtablesize - get descriptor table size
fr: getdtablesize - Lire la taille de la table des descripteurs

note: type: Plain text
en: B<getdtablesize>():
fr: B<getdtablesize>()\ :

note: type: Plain text
en: B<getdtablesize>()  returns the maximum number of files a process can have open, one more than the largest possible value for a file descriptor.
fr: B<getdtablesize>() retourne le nombre maximal de fichiers qu'un processus puisse ouvrir simultanément, soit un de plus que la plus grande valeur possible pour un descripteur de fichier.

note: type: Plain text
en: The current limit on the number of open files per process.
fr: La limite actuelle du nombre de fichiers ouverts par processus.

note: type: Plain text
en: On Linux, B<getdtablesize>()  can return any of the errors described for B<getrlimit>(2); see NOTES below.
fr: Sous Linux, B<getdtablesize>() peut renvoyer toutes les erreurs décrites pour B<getrlimit>(2)\ ; consultez les NOTES ci\(hydessous.

note: type: Plain text
en: SVr4, 4.4BSD (the B<getdtablesize>()  function first appeared in 4.2BSD).  It is not specified in POSIX.1-2001; portable applications should employ I<sysconf(_SC_OPEN_MAX)> instead of this call.
fr: SVr4, BSD\ 4.4 (B<getdtablesize>() est apparue dans BSD\ 4.2). Il n'est pas spécifié par POSIX.1-2001\ ; les applications portables devraient utiliser I<sysconf(_SC_OPEN_MAX)> à la place.

note: type: Plain text
en: B<getdtablesize>()  is implemented as a libc library function.  The glibc version calls B<getrlimit>(2)  and returns the current B<RLIMIT_NOFILE> limit, or B<OPEN_MAX> when that fails.  The libc4 and libc5 versions return B<OPEN_MAX> (set to 256 since Linux 0.98.4).
fr: B<getdtablesize>() est implémentée comme fonction de bibliothèque. La version de la glibc appelle B<getrlimit>(2) et renvoie la valeur de la limite B<RLIMIT_NOFILE> actuelle, ou B<OPEN_MAX> si cela échoue. Les versions des bibliothèques libc4 et libc5 renvoyaient B<OPEN_MAX> (256 depuis Linux 0.98.4).

note: type: Plain text
en: gethostid, sethostid - get or set the unique identifier of the current host
fr: gethostid, sethostid - Lire/écrire l'identifiant unique de l'hôte

note: type: Plain text
en: B<gethostid>():
fr: B<gethostid>() :

note: type: Plain text
en: B<sethostid>():
fr: B<sethostid>() :

note: type: Plain text
en: B<gethostid>()  and B<sethostid>()  respectively get or set a unique 32-bit identifier for the current machine.  The 32-bit identifier is intended to be unique among all UNIX systems in existence.  This normally resembles the Internet address for the local machine, as returned by B<gethostbyname>(3), and thus usually never needs to be set.
fr: B<gethostid>() et B<sethostid>() récupèrent et définissent respectivement un identifiant 32 bits unique pour la machine. L'identifiant 32 bits est supposé être unique pour tous les systèmes UNIX. En général, il ressemble à l'adresse internet de la machine local, comme renvoyée par B<gethostbyname>(3) et il ne devrait pas être nécessaire de le définir.

note: type: Plain text
en: The B<sethostid>()  call is restricted to the superuser.
fr: L'appel de B<sethostid>() est bien sûr limité au superutilisateur.

note: type: Plain text
en: B<gethostid>()  returns the 32-bit identifier for the current host as set by B<sethostid>().
fr: B<gethostid>() retourne l'identifiant sur 32 bits de l'hôte, tel qu'il a été positionné par B<sethostid>().

note: type: Plain text
en: On success, B<sethostid>()  returns 0; on error, -1 is returned, and I<errno> is set to indicate the error.
fr: Si elle réussit, B<sethostid>() renvoie 0. En cas d'erreur, elle renvoie -1 et remplit I<errno> en conséquence.

note: type: Plain text
en: B<sethostid>()  can fail with the following errors:
fr: B<sethostid>() peut échouer pour les raisons suivantes :

note: type: Plain text
en: The caller did not have permission to write to the file used to store the host ID.
fr: L'appelant n'a pas les permissions d'écrire dans le fichier utilisé pour sauvegarder l'ID de l'hôte.

note: type: Plain text
en: The calling process's effective user or group ID is not the same as its corresponding real ID.
fr: L'ID de l'utilisateur ou du groupe effectif du processus appelant ne correspond pas à l'ID réel.

note: type: Plain text
en: 4.2BSD; these functions were dropped in 4.4BSD.  SVr4 includes B<gethostid>()  but not B<sethostid>().  POSIX.1-2001 specifies B<gethostid>()  but not B<sethostid>().
fr: BSD\ 4.2. Ces fonctions ont été abandonnées dans BSD\ 4.4. SVr4 contient B<gethostid>() mais pas B<sethostid>(). POSIX.1-2001 spécifie B<gethostid>() mais pas B<sethostid>().

note: libc5 used /etc/hostid; libc4 didn't have these functions type: Plain text
en: In the glibc implementation, the I<hostid> is stored in the file I</etc/hostid>.  (In glibc versions before 2.2, the file I</var/adm/hostid> was used.)
fr: Dans l'implémentation de la glibc, I<hostid> est sauvegardé dans le fichier I</etc/hostid> (pour les versions antérieures à la glibc 2.2, I</var/adm/hostid> était utilisé).

note: type: Plain text
en: In the glibc implementation, if B<gethostid>()  cannot open the file containing the host ID, then it obtains the hostname using B<gethostname>(2), passes that hostname to B<gethostbyname_r>(3)  in order to obtain the host's IPv4 address, and returns a value obtained by bit-twiddling the IPv4 address.  (This value may not be unique.)
fr: Dans l'implémentation de la glibc, si B<gethostid>() ne peut pas ouvrir le fichier contenant l'ID de l'hôte, alors elle obtient le nom d'hôte avec B<gethostname>(2), passe ce nom d'hôte à B<gethostbyname_r>(3) de façon à obtenir l'adresse IPv4 de l'hôte, et renvoie l'adresse IPv4 modifée par manipulation de bits (« bit-twilling ») (cette valeur peut ne pas être unique).

note: type: Plain text
en: It is impossible to ensure that the identifier is globally unique.
fr: Il est impossible de s'assurer que l'identifiant est globalement unique.

note: type: Plain text
en: B<hostid>(1), B<gethostbyname>(3)
fr: B<hostid>(1), B<gethostbyname>(3).

note: type: TH
en: 2010-09-26
fr: 26 septembre 2010

note: type: Plain text
en: gethostname, sethostname - get/set hostname
fr: gethostname, sethostname - Lire et écrire le nom d'hôte

note: type: Plain text
en: B<gethostname>():
fr: B<gethostname>()\ :

note: type: Plain text
en: Since glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE\ E<gt>=\ 500
fr: Depuis la glibc 2.12 : _BSD_SOURCE || _XOPEN_SOURCE\ E<gt>=\ 500

note: type: Plain text
en: || /* Since glibc 2.12: */ _POSIX_C_SOURCE\ E<gt>=\ 200112L
fr: || /* Depuis la glibc 2.12 : */ _POSIX_C_SOURCE\ E<gt>=\ 200112L

note: type: Plain text
en: B<sethostname>():
fr: B<sethostname>()\ :

note: type: Plain text
en: These system calls are used to access or to change the hostname of the current processor.
fr: Ces appels système sont utilisés pour obtenir ou changer le nom d'hôte du processeur en cours.

note: type: Plain text
en: B<sethostname>()  sets the hostname to the value given in the character array I<name>.  The I<len> argument specifies the number of bytes in I<name>.  (Thus, I<name> does not require a terminating null byte.)
fr: B<sethostname>() définit le nom d'hôte à la valeur fournie dans le tableau d'octets I<name>. Le paramètre I<len> indique le nombre d'octets dans I<nom> (ainsi, I<name> n'a pas à contenir d'octet nul de fin).

note: type: Plain text
en: B<gethostname>()  returns the null-terminated hostname in the character array I<name>, which has a length of I<len> bytes.  If the null-terminated hostname is too large to fit, then the name is truncated, and no error is returned (but see NOTES below).  POSIX.1-2001 says that if such truncation occurs, then it is unspecified whether the returned buffer includes a terminating null byte.
fr: B<gethostname>() renvoie le nom d'hôte, avec un octet nul de fin, dans le tableau d'octets I<name>, qui a une longueur de I<len> octets. Si le nom d'hôte avec son octet nul de fin est trop long pour tenir, alors le nom est tronqué, et aucune erreur n'est renvoyée (mais consultez la section NOTES ci-dessous). POSIX.1-2001 indique que dans le cas ou le nom est tronqué, il n'est pas spécifié si le tableau renvoyé inclut ou pas un octet nul de fin.

note: type: Plain text
en: I<name> is an invalid address.
fr: I<name> pointe en dehors de l'espace d'adressage accessible.

note: Can't occur for gethostbyname() wrapper, since 'len' has an unsigned type; can occur for the underlying system call. type: Plain text
en: I<len> is negative or, for B<sethostname>(), I<len> is larger than the maximum allowed size.
fr: I<len> est négatif ou, pour B<sethostname>(), I<len> est plus grand que la taille maximale autorisée.

note: type: Plain text
en: (glibc B<gethostname>())  I<len> is smaller than the actual size.  (Before version 2.1, glibc uses B<EINVAL> for this case.)
fr: (B<gethostname>() de la glibc) I<len> est plus petit que la véritable taille (avant la glibc 2.1, la glibc utilisait B<EINVAL> dans ce cas).

note: type: Plain text
en: For B<sethostname>(), the caller did not have the B<CAP_SYS_ADMIN> capability.
fr: Pour B<sethostname>(), l'appelant n'a pas la capacité B<CAP_SYS_ADMIN>.

note: type: Plain text
en: SVr4, 4.4BSD (these interfaces first appeared in 4.2BSD).  POSIX.1-2001 specifies B<gethostname>()  but not B<sethostname>().
fr: SVr4, BSD\ 4.4 (ces interfaces sont apparues dans BSD\ 4.2). POSIX.1-2001 définit B<gethostname>() mais pas B<sethostname>().

note: type: Plain text
en: SUSv2 guarantees that "Host names are limited to 255 bytes".  POSIX.1-2001 guarantees that "Host names (not including the terminating null byte) are limited to B<HOST_NAME_MAX> bytes".  On Linux, B<HOST_NAME_MAX> is defined with the value 64, which has been the limit since Linux 1.0 (earlier kernels imposed a limit of 8 bytes).
fr: SUSv2 garantit que «\ les noms d'hôtes sont limités à 255 octets\ ». POSIX.1-2001 garantit que «\ les noms d'hôtes (non compris le caractère NUL final) sont limités à B<HOST_NAME_MAX> octets\ ». Sous Linux, B<HOST_NAME_MAX> vaut la valeur 64, qui a été la limite depuis Linux 1.0 (les noyaux plus anciens imposaient une limite de 8 octets).

note: type: Plain text
en: The GNU C library does not employ the B<gethostname>()  system call; instead, it implements B<gethostname>()  as a library function that calls B<uname>(2)  and copies up to I<len> bytes from the returned I<nodename> field into I<name>.  Having performed the copy, the function then checks if the length of the I<nodename> was greater than or equal to I<len>, and if it is, then the function returns -1 with I<errno> set to B<ENAMETOOLONG>; in this case, a terminating null byte is not included in the returned I<name>.
fr: La bibliothèque C GNU n'utilise pas l'appel système B<gethostname>() ; à la place, B<gethostname>() est implémentée comme une fonction de bibliothèque qui appelle B<uname>(2) et copie jusqu'à I<len> octets depuis le champ I<nodename> renvoyé dans I<name>. Après la copie, la fonction vérifie si la longueur de I<nodename> était supérieure ou égale à I<len>, et si c'est le cas, la fonction renvoie -1 en positionnant I<errno> à B<ENAMETOOLONG>. Les versions de glibc antérieures à 2.2 gèrent le cas où la longueur de I<nodename> est supérieur ou égal à I<len> de façon différente\ : rien n'est copié dans I<name>, et la fonction renvoie -1 en positionnant I<errno> à B<ENAMETOOLONG> ; dans ce cas, aucun caractère nul de fin n'est inclus dans la valeur I<name> renvoyée.

note: At least glibc 2.0 and 2.1, older versions not checked type: Plain text
en: Versions of glibc before 2.2 handle the case where the length of the I<nodename> was greater than or equal to I<len> differently: nothing is copied into I<name> and the function returns -1 with I<errno> set to B<ENAMETOOLONG>.
fr: Les versions de la glibc antérieures à la version 2.2 prennent en charge différemment le cas où la longueur de I<nodename> est supérieure ou égal à I<len> : rien n'est copié dans I<name> et la fonction renvoie -1 en positionnant I<errno> à B<ENAMETOOLONG>.

note: type: Plain text
en: B<getdomainname>(2), B<setdomainname>(2), B<uname>(2)
fr: B<getdomainname>(2), B<setdomainname>(2), B<uname>(2).

note: type: TH
en: 2013-04-19
fr: 19 avril 2013

note: type: Plain text
en: getlogin, getlogin_r, cuserid - get username
fr: getlogin, getlogin_r, cuserid - Obtenir le nom de l'utilisateur

note: type: Plain text
en: B<getlogin_r>(): _REENTRANT || _POSIX_C_SOURCE\ E<gt>=\ 199506L
fr: B<getlogin_r>()\ : _REENTRANT || _POSIX_C_SOURCE\ E<gt>=\ 199506L

note: type: Plain text
en: B<cuserid>(): _XOPEN_SOURCE
fr: B<cuserid>()\ : _XOPEN_SOURCE

note: type: Plain text
en: B<getlogin>()  returns a pointer to a string containing the name of the user logged in on the controlling terminal of the process, or a null pointer if this information cannot be determined.  The string is statically allocated and might be overwritten on subsequent calls to this function or to B<cuserid>().
fr: La fonction B<getlogin>() renvoie un pointeur sur une chaîne de caractères contenant le nom de l'utilisateur connecté sur le terminal contrôlant le processus, ou un pointeur NULL si cette information n'est pas disponible. La chaîne est allouée de manière statique et peut donc être écrasée lors des appels ultérieurs à B<getlogin>() ou à B<cuserid>().

note: type: Plain text
en: B<getlogin_r>()  returns this same username in the array I<buf> of size I<bufsize>.
fr: B<getlogin_r>() renvoie le même nom d'utilisateur dans le tableau I<buf> de taille I<bufsize>.

note: type: Plain text
en: B<cuserid>()  returns a pointer to a string containing a username associated with the effective user ID of the process.  If I<string> is not a null pointer, it should be an array that can hold at least B<L_cuserid> characters; the string is returned in this array.  Otherwise, a pointer to a string in a static area is returned.  This string is statically allocated and might be overwritten on subsequent calls to this function or to B<getlogin>().
fr: La fonction B<cuserid>() renvoie un pointeur sur une chaîne de caractères contenant le nom de l'utilisateur associé à l'UID effectif du processus. Si I<string> n'est pas un pointeur NULL, ce doit être une table contenant au moins B<L_cuserid> caractères. La chaîne sera alors renvoyée dans cette table. Sinon (si I<string> vaut NULL), un pointeur sur une chaîne allouée statiquement sera renvoyé. Cette chaîne peut être écrasée par des appels ultérieurs à B<getlogin>().

note: type: Plain text
en: The macro B<L_cuserid> is an integer constant that indicates how long an array you might need to store a username.  B<L_cuserid> is declared in I<E<lt>stdio.hE<gt>>.
fr: La constante symbolique B<L_cuserid> est un entier indiquant la longueur nécessaire pour stocker un nom d'utilisateur. B<L_cuserid> est déclarée dans I<E<lt>stdio.hE<gt>>.

note: type: Plain text
en: These functions let your program identify positively the user who is running (B<cuserid>())  or the user who logged in this session (B<getlogin>()).  (These can differ when set-user-ID programs are involved.)
fr: Ces fonctions permettent d'identifier correctement l'utilisateur qui exécute le programme (B<cuserid>()), ou l'utilisateur connecté à la session (B<getlogin>()). Ces deux éléments peuvent différer si le bit Set-UID du programme est validé.

note: type: Plain text
en: For most purposes, it is more useful to use the environment variable B<LOGNAME> to find out who the user is.  This is more flexible precisely because the user can set B<LOGNAME> arbitrarily.
fr: La plupart du temps, il est plus utile d'utiliser la variable d'environnement B<LOGNAME> pour déterminer l'utilisateur. Ceci est plus flexible car il est justement possible de modifier B<LOGNAME> arbitrairement.

note: type: Plain text
en: B<getlogin>()  returns a pointer to the username when successful, and NULL on failure, with I<errno> set to indicate the cause of the error.  B<getlogin_r>()  returns 0 when successful, and nonzero on failure.
fr: B<getlogin>() renvoie un pointeur sur le nom de l'utilisateur si elle réussit. En cas d'échec, NULL est renvoyé et I<errno> contient le code d'erreur. B<getlogin_r>() renvoie 0 si elle réussit et une valeur non nulle si elle échoue.

note: type: Plain text
en: POSIX specifies
fr: POSIX spécifie

note: type: Plain text
en: The calling process already has the maximum allowed number of open files.
fr: Le processus appelant a déjà le nombre maximal autorisé de fichiers ouverts.

note: type: Plain text
en: The system already has the maximum allowed number of open files.
fr: Le système a déjà le nombre maximal autorisé de fichiers ouverts.

note: type: Plain text
en: The calling process has no controlling terminal.
fr: Le processus appelant n'a pas de terminal (tty) contrôlant.

note: type: Plain text
en: (getlogin_r)  The length of the username, including the terminating null byte (\(aq\e0\(aq), is larger than I<bufsize>.
fr: (getlogin_r)  La longueur du nom d'utilisateur, en incluant le caractère NUL final («\ \e0\ »), est plus grande que I<bufsize>.

note: type: Plain text
en: Linux/glibc also has
fr: Linux/glibc a aussi les erreurs\ :

note: type: Plain text
en: There was no corresponding entry in the utmp-file.
fr: Il n'y a pas d'entrée correspondante dans le fichier utmp.

note: type: Plain text
en: Insufficient memory to allocate passwd structure.
fr: Pas assez de mémoire pour allouer la structure passwd.

note: type: Plain text
en: Standard input didn't refer to a terminal.  (See BUGS.)
fr: L'entrée standard ne fait pas référence à un terminal (voir BOGUES).

note: type: Plain text
en: password database file
fr: Fichier de base de données des mots de passe

note: type: Plain text
en: (traditionally I</etc/utmp>; some libc versions used I</var/adm/utmp>)
fr: (traditionnellement I</etc/utmp>\ ; certaines versions de la libc utilisent I</var/adm/utmp>)

note: type: Plain text
en: The B<getlogin>()  function is not thread-safe.
fr: La fonction B<getlogin>() n'est pas sûre dans un contexte multithread.

note: type: Plain text
en: The B<getlogin_r>()  function is thread-safe.
fr: La fonction B<getlogin_r>() est sûre dans un contexte multithread.

note: type: Plain text
en: The B<cuserid>()  function is thread-safe with exceptions.  It is not thread-safe if called with a NULL parameter.
fr: La fonction B<cuserid>() est sûre dans un contexte multithread, sauf exceptions. Elle ne l'est pas lorsqu'elle est appelée avec le paramètre NULL.

note: type: Plain text
en: B<getlogin>()  and B<getlogin_r>()  specified in POSIX.1-2001.
fr: B<getlogin>() et B<getlogin_r>() sont spécifiées dans POSIX.1-2001.

note: type: Plain text
en: System V has a B<cuserid>()  function which uses the real user ID rather than the effective user ID.  The B<cuserid>()  function was included in the 1988 version of POSIX, but removed from the 1990 version.  It was present in SUSv2, but removed in POSIX.1-2001.
fr: System V dispose d'une fonction B<cuserid>() qui utilise l'UID réel plutôt que l'UID effectif. La fonction B<cuserid>() a été incorporée dans la version POSIX de 1988, mais supprimée de la version de 1990. Elle était présente dans SUSv2, mais elle a été supprimée de POSIX.1-2001.

note: type: Plain text
en: OpenBSD has B<getlogin>()  and B<setlogin>(), and a username associated with a session, even if it has no controlling terminal.
fr: OpenBSD a B<getlogin>() et B<setlogin>(), et un nom d'utilisateur associé à une session, même s'il n'a pas de terminal de contrôle.

note: type: Plain text
en: Unfortunately, it is often rather easy to fool B<getlogin>().  Sometimes it does not work at all, because some program messed up the utmp file.  Often, it gives only the first 8 characters of the login name.  The user currently logged in on the controlling terminal of our program need not be the user who started it.  Avoid B<getlogin>()  for security-related purposes.
fr: Malheureusement, il est souvent assez facile de tromper B<getlogin>(). Parfois, il ne fonctionne pas du tout car certains programmes n'utilisent pas le fichier utmp correctement. Souvent, il ne retourne que les 8 premiers caractères du nom. L'utilisateur connecté sur le terminal de contrôle d'un programme n'est pas nécessairement celui qui a lancé le programme. Évitez B<getlogin>() pour des problèmes de sécurité.

note: type: Plain text
en: Note that glibc does not follow the POSIX specification and uses I<stdin> instead of I</dev/tty>.  A bug.  (Other recent systems, like SunOS 5.8 and HP-UX 11.11 and FreeBSD 4.8 all return the login name also when I<stdin> is redirected.)
fr: Veuillez noter que la glibc ne suit pas la spécification POSIX et utilise I<stdin> au lieu de I</dev/tty>. Un bogue (les autres systèmes récents, comme SunOS\ 5.8, HP-UX\ 11.11 et FreeBSD\ 4.8 renvoient l'identifiant de connexion même si I<stdin> est redirigée).

note: type: Plain text
en: Nobody knows precisely what B<cuserid>()  does; avoid it in portable programs.  Or avoid it altogether: use I<getpwuid(geteuid())> instead, if that is what you meant.  B<Do not use> B<cuserid>().
fr: Personne ne sait précisément ce que fait B<cuserid>(). Évitez-le dans des programmes portables. Évitez-le de toute manière. Utilisez I<getpwuid(geteuid())> à la place si vous en avez besoin. B<N'utilisez pas> B<cuserid>().

note: type: TH
en: 2010-11-01
fr: 1er novembre 2010

note: type: Plain text
en: getopt, getopt_long, getopt_long_only, optarg, optind, opterr, optopt - Parse command-line options
fr: getopt, getopt_long, getopt_long_only, optarg, optind, opterr, optopt - Analyser les options de la ligne de commande

note: type: Plain text
en: B<getopt>(): _POSIX_C_SOURCE\ E<gt>=\ 2 || _XOPEN_SOURCE
fr: B<getopt>() : _POSIX_C_SOURCE\ E<gt>=\ 2 || _XOPEN_SOURCE

note: type: Plain text
en: B<getopt_long>(), B<getopt_long_only>(): _GNU_SOURCE
fr: B<getopt_long>(), B<getopt_long_only>()\ : _GNU_SOURCE

note: type: Plain text
en: The B<getopt>()  function parses the command-line arguments.  Its arguments I<argc> and I<argv> are the argument count and array as passed to the I<main>()  function on program invocation.  An element of I<argv> that starts with \(aq-\(aq (and is not exactly "-" or "--")  is an option element.  The characters of this element (aside from the initial \(aq-\(aq) are option characters.  If B<getopt>()  is called repeatedly, it returns successively each of the option characters from each of the option elements.
fr: La fonction B<getopt>() analyse les arguments de la ligne de commande. Ses éléments I<argc> et I<argv> correspondent aux nombres et à la table d'arguments qui sont transmis à la fonction I<main>() lors du lancement du programme. Un élément de I<argv> qui commence par «\ -\ » (et qui ne soit pas uniquement «\ --\ » ou «\ -\ ») est considéré comme une option. Les caractères à la suite du «\ -\ » initial sont les caractères de l'option. Si B<getopt>() est appelée à plusieurs reprises, elle renverra successivement chaque caractère de chaque option.

note: type: Plain text
en: The variable I<optind> is the index of the next element to be processed in I<argv>.  The system initializes this value to 1.  The caller can reset it to 1 to restart scanning of the same I<argv>, or when scanning a new argument vector.
fr: La variable I<optind> est l'indice de l'élément suivant à analyser dans I<argv>. Le système initialise cette valeur à 1. L'appelant peut le remettre à 1 pour recommencer l'analyse du même I<argv> ou pour analyser un nouveau tableau de paramètre.

note: type: Plain text
en: If B<getopt>()  finds another option character, it returns that character, updating the external variable I<optind> and a static variable I<nextchar> so that the next call to B<getopt>()  can resume the scan with the following option character or I<argv>-element.
fr: Si B<getopt>() trouve un autre caractère d'option, elle le renvoie, mettant à jour la variable externe I<optind> et la variable statique I<nextchar>, ainsi l'appel suivant à B<getopt>() peut continuer l'analyse avec le caractère suivant ou l'élément I<argv>.

note: type: Plain text
en: If there are no more option characters, B<getopt>()  returns -1.  Then I<optind> is the index in I<argv> of the first I<argv>-element that is not an option.
fr: S'il n'y a plus de caractères d'option, B<getopt>() renvoie -1. Alors, I<optind> devient l'index du premier élément de I<argv> qui ne soit pas une option.

note: type: Plain text
en: I<optstring> is a string containing the legitimate option characters.  If such a character is followed by a colon, the option requires an argument, so B<getopt>()  places a pointer to the following text in the same I<argv>-element, or the text of the following I<argv>-element, in I<optarg>.  Two colons mean an option takes an optional arg; if there is text in the current I<argv>-element (i.e., in the same word as the option name itself, for example, "-oarg"), then it is returned in I<optarg>, otherwise I<optarg> is set to zero.  This is a GNU extension.  If I<optstring> contains B<W> followed by a semicolon, then B<-W foo> is treated as the long option B<--foo>.  (The B<-W> option is reserved by POSIX.2 for implementation extensions.)  This behavior is a GNU extension, not available with libraries before glibc 2.
fr: I<optstring> est une chaîne contenant l'ensemble des caractères d'option autorisés. Si un de ces caractères est suivi par un deux-points (« : »), l'option nécessite un argument, donc B<getopt>() placera un pointeur sur le texte suivant dans le même I<argv>, ou sur le texte de l'élément I<argv> suivant dans I<optarg>. Un double deux points (« :: ») signifie qu'une option prend un argument optionnel. S'il existe un texte dans le même élément de I<argv> (c'est-à-dire dans le même mot que l'option elle-même comme «\ -oarg\ ») alors il est renvoyé dans I<optarg>, sinon I<optarg> est défini à zéro. Il s'agit d'une extension GNU. Si I<optstring> contient B<W> suivi d'un point-virgule, alors B<-W foo> est traité comme l'option longue B<--foo> (l'option B<-W> est réservée par POSIX.2 pour des extensions spécifique à l'implémentation). Ce comportement, spécifique à la version GNU, n'est pas disponible avant la bibliothèque glibc\ 2.

note: type: Plain text
en: By default, B<getopt>()  permutes the contents of I<argv> as it scans, so that eventually all the nonoptions are at the end.  Two other modes are also implemented.  If the first character of I<optstring> is \(aq+\(aq or the environment variable B<POSIXLY_CORRECT> is set, then option processing stops as soon as a nonoption argument is encountered.  If the first character of I<optstring> is \(aq-\(aq, then each nonoption I<argv>-element is handled as if it were the argument of an option with character code 1.  (This is used by programs that were written to expect options and other I<argv>-elements in any order and that care about the ordering of the two.)  The special argument "--" forces an end of option-scanning regardless of the scanning mode.
fr: Par défaut, B<getopt>() permute les éléments de I<argv> au fur et à mesure de son analyse, ainsi tous les arguments éventuels ne constituant pas des options se trouvent à la fin. Deux autres modes sont également implémentés\ : Si le premier caractère de I<optstring> vaut «\ +\ », ou si la variable d'environnement B<POSIXLY_CORRECT> est valide, alors l'analyse s'arrête aussitôt qu'un argument ne constituant pas une option est rencontré. Si le premier caractère de I<optstring> vaut «\ -\ », alors les arguments ne correspondant pas à une option sont manipulés comme s'ils étaient des arguments d'une option dont le caractère est le caractère de code 1 (ceci est utilisé par les programmes qui sont conçus pour recevoir des options et d'autres éléments de I<argv> dans n'importe quel ordre mais qui prennent en compte l'ordre de ces deux types). L'argument spécial «\ --\ » arrête l'analyse des options, quelque soit le mode en cours.

note: type: Plain text
en: If B<getopt>()  does not recognize an option character, it prints an error message to I<stderr>, stores the character in I<optopt>, and returns \(aq?\(aq.  The calling program may prevent the error message by setting I<opterr> to 0.
fr: Si B<getopt>() ne reconnaît pas un caractère d'option, il affiche un message d'erreur sur la sortie standard I<stderr>, stocke le caractère dans I<optopt>, et renvoie «\ ?\ ». Le programme appelant peut empêcher l'affichage du message d'erreur en positionnant I<opterr> à 0.

note: type: Plain text
en: If B<getopt>()  finds an option character in I<argv> that was not included in I<optstring>, or if it detects a missing option argument, it returns \(aq?\(aq and sets the external variable I<optopt> to the actual option character.  If the first character (following any optional \(aq+\(aq or \(aq-\(aq described above)  of I<optstring> is a colon (\(aq:\(aq), then B<getopt>()  returns \(aq:\(aq instead of \(aq?\(aq to indicate a missing option argument.  If an error was detected, and the first character of I<optstring> is not a colon, and the external variable I<opterr> is nonzero (which is the default), B<getopt>()  prints an error message.
fr: Si B<getopt>() trouve dans I<argv> un caractère d'option non inclus dans I<optstring>, ou s'il manque un argument d'option, la fonction renvoie «\ ?\ » et affecte à la variable externe I<optopt> le caractère d'option courant. Si le premier caractère de I<optstring> (suivi par «\ +\ » ou «\ -\ ») est un deux points («\ :\ »), alors B<getopt>() renvoie «\ :\ » plutôt que «\ ?\ » pour indiquer un argument d'option manquant. Si une erreur est détectée, si le premier caractère de I<optstring> n'est pas deux points, et si la variable externe I<opterr> est non nulle, (non nulle par défaut), alors B<getopt>() affiche un message d'erreur.

note: type: SS
en: getopt_long() and getopt_long_only()
fr: getopt_long() et getopt_long_only()

note: type: Plain text
en: The B<getopt_long>()  function works like B<getopt>()  except that it also accepts long options, started with two dashes.  (If the program accepts only long options, then I<optstring> should be specified as an empty string (""), not NULL.)  Long option names may be abbreviated if the abbreviation is unique or is an exact match for some defined option.  A long option may take a parameter, of the form B<--arg=param> or B<--arg param>.
fr: La fonction B<getopt_long>() fonctionne comme B<getopt>() sauf qu'elle accepte également des noms longs d'option, commençant par deux tirets (si le programme accepte seulement les options longues, alors I<optstring> devrait être indiquée avec une chaîne vide «\ ""\ » et non avec NULL). Les noms longs d'option peuvent être abrégés, si l'abréviation est unique, ou si elle correspond exactement à une option définie. Une option longue peut prendre un argument, de la forme B<--arg=param> ou B<--arg param>.

note: type: Plain text
en: I<longopts> is a pointer to the first element of an array of I<struct option> declared in I<E<lt>getopt.hE<gt>> as
fr: I<longopts> est un pointeur sur le premier élément d'un tableau de structures I<struct option> déclarées dans I<E<lt>getopt.hE<gt>> ainsi\ :

note: type: Plain text
en: The meanings of the different fields are:
fr: La signification des différents champs est la suivante\ :

note: type: Plain text
en: is the name of the long option.
fr: est le nom de l'option longue.

note: type: Plain text
en: is: B<no_argument> (or 0) if the option does not take an argument; B<required_argument> (or 1) if the option requires an argument; or B<optional_argument> (or 2) if the option takes an optional argument.
fr: vaut\ : B<no_argument> (ou 0), si l'option ne prend pas d'argument, B<required_argument> (ou 1) si l'option prend un argument, ou B<optional_argument> (ou 2) si l'option prend un argument optionnel.

note: type: Plain text
en: specifies how results are returned for a long option.  If I<flag> is NULL, then B<getopt_long>()  returns I<val>.  (For example, the calling program may set I<val> to the equivalent short option character.)  Otherwise, B<getopt_long>()  returns 0, and I<flag> points to a variable which is set to I<val> if the option is found, but left unchanged if the option is not found.
fr: indique la manière de renvoyer les résultats pour une option longue. Si I<flag> vaut NULL, alors B<getopt_long>() renvoie I<val> (par exemple, le programme appelant peut remplir I<val> avec le caractère de l'option courte correspondante). Sinon, B<getopt_long>() renvoie 0, et I<flag> pointe sur une variable définie à I<val> si l'option est trouvée, mais reste inchangé si l'option est absente.

note: type: Plain text
en: is the value to return, or to load into the variable pointed to by I<flag>.
fr: est la valeur à renvoyer, ou à charger dans la variable pointée par I<flag>.

note: type: Plain text
en: The last element of the array has to be filled with zeros.
fr: Le dernier élément de la table doit être rempli avec des zéros.

note: type: Plain text
en: If I<longindex> is not NULL, it points to a variable which is set to the index of the long option relative to I<longopts>.
fr: Si I<longindex> n'est pas NULL, il pointe sur une variable qui est définie avec l'index de l'option longue correspondant à I<longopts>.

note: type: Plain text
en: B<getopt_long_only>()  is like B<getopt_long>(), but \(aq-\(aq as well as "--" can indicate a long option.  If an option that starts with \(aq-\(aq (not "--") doesn't match a long option, but does match a short option, it is parsed as a short option instead.
fr: B<getopt_long_only>() fonctionne comme B<getopt_long>(), mais «\ -\ » tout comme «\ --\ » peut indiquer une option longue. Si une option commençant par «\ -\ » (et non «\ --\ ») ne correspond pas à une option longue, mais correspond à une option courte, elle est analysée en tant qu'option courte.

note: type: Plain text
en: If an option was successfully found, then B<getopt>()  returns the option character.  If all command-line options have been parsed, then B<getopt>()  returns -1.  If B<getopt>()  encounters an option character that was not in I<optstring>, then \(aq?\(aq is returned.  If B<getopt>()  encounters an option with a missing argument, then the return value depends on the first character in I<optstring>: if it is \(aq:\(aq, then \(aq:\(aq is returned; otherwise \(aq?\(aq is returned.
fr: Si une option a été trouvée, alors B<getopt>() renvoie le caractère de l'option. Si toutes les options de la ligne de commande ont été lues, alors B<getopt>() renvoie -1. Si B<getopt>() rencontre un caractère d'option qui n'est pas dans I<optstring>, alors «\ ?\ » est renvoyé. Si B<getopt>() rencontre une option avec un argument manquant, alors la valeur renvoyée dépend du premier caractère de I<optstring>\ : si c'est «\ :\ », alors ce caractère est renvoyé, sinon «\ ?\ » est renvoyé.

note: type: Plain text
en: B<getopt_long>()  and B<getopt_long_only>()  also return the option character when a short option is recognized.  For a long option, they return I<val> if I<flag> is NULL, and 0 otherwise.  Error and -1 returns are the same as for B<getopt>(), plus \(aq?\(aq for an ambiguous match or an extraneous parameter.
fr: B<getopt_long>() et B<getopt_long_only>() renvoient également le caractère d'option courte s'ils en trouvent une. Pour les options longues, ils renvoient I<val> si I<flag> vaut NULL, et 0 sinon. Les erreurs et la fin des options sont gérées comme avec B<getopt>(), en renvoyant de surcroît «\ ?\ » pour une correspondance ambiguë, ou un paramètre en trop.

note: type: SH
en: ENVIRONMENT
fr: ENVIRONNEMENT

note: type: Plain text
en: If this is set, then option processing stops as soon as a nonoption argument is encountered.
fr: Si cette variable est positionnée, l'analyse s'arrête dès qu'un argument ne constituant pas une option est rencontré.

note: type: Plain text
en: This variable was used by B<bash>(1)  2.0 to communicate to glibc which arguments are the results of wildcard expansion and so should not be considered as options.  This behavior was removed in B<bash>(1)  version 2.01, but the support remains in glibc.
fr: Cette variable est utilisée par B<bash>(1) 2.0 pour communiquer à la glibc les arguments résultant de l'expansion des caractères génériques, et ils ne doivent pas être considérés comme des options. Ce comportement a été supprimé de B<bash>(1) version 2.01, mais il est toujours géré par la glibc.

note: type: TP
en: B<getopt>():
fr: B<getopt>()\ :

note: type: Plain text
en: POSIX.2 and POSIX.1-2001, provided the environment variable B<POSIXLY_CORRECT> is set.  Otherwise, the elements of I<argv> aren't really const, because we permute them.  We pretend they're const in the prototype to be compatible with other systems.
fr: POSIX.2 et POSIX.1-2001, à condition que la variable d'environnement B<POSIXLY_CORRECT> soit positionnée. Sinon, les éléments de I<argv> ne sont pas vraiment constants puisque l'on peut les permuter. On les déclare «\ const\ » dans le prototype pour être compatible avec d'autres systèmes.

note: type: Plain text
en: The use of \(aq+\(aq and \(aq-\(aq in I<optstring> is a GNU extension.
fr: L'utilisation de \(aq+\(aq et \(aq-\(aq dans I<optstring> est une extension GNU.

note: type: Plain text
en: On some older implementations, B<getopt>()  was declared in I<E<lt>stdio.hE<gt>>.  SUSv1 permitted the declaration to appear in either I<E<lt>unistd.hE<gt>> or I<E<lt>stdio.hE<gt>>.  POSIX.1-2001 marked the use of I<E<lt>stdio.hE<gt>> for this purpose as LEGACY.  POSIX.1-2001 does not allow the declaration to appear in I<E<lt>stdio.hE<gt>>.
fr: Sur certaines anciennes implémentations, B<getopt>() était déclarée dans I<E<lt>stdio.hE<gt>>. SUSv1 permettait que la déclaration apparaisse soit dans I<E<lt>unistd.hE<gt>> ou soit dans I<E<lt>stdio.hE<gt>>. POSIX.1-2001 marque l'utilisation de I<E<lt>stdio.hE<gt>> comme «\ LEGACY\ ». POSIX.1-2001 ne permet pas que la déclaration soit dans I<E<lt>stdio.hE<gt>>.

note: type: TP
en: B<getopt_long>() and B<getopt_long_only>():
fr: B<getopt_long>() et B<getopt_long_only>()\ :

note: type: Plain text
en: A program that scans multiple argument vectors, or rescans the same vector more than once, and wants to make use of GNU extensions such as \(aq+\(aq and \(aq-\(aq at the start of I<optstring>, or changes the value of B<POSIXLY_CORRECT> between scans, must reinitialize B<getopt>()  by resetting I<optind> to 0, rather than the traditional value of 1.  (Resetting to 0 forces the invocation of an internal initialization routine that rechecks B<POSIXLY_CORRECT> and checks for GNU extensions in I<optstring>.)
fr: Un programme qui analyse plusieurs tableaux de paramètres ou analyse de nouveau le même tableau plusieurs fois, et qui veut utiliser les extension GNU telles que \(aq+\(aq et \(aq-\(aq au début de I<optstring>, ou changer la valeur de B<POSIXLY_CORRECT> entre les analyses, doit réinitialiser B<getopt>() en remettant I<optind> à 0, plutôt que la valeur traditionnelle de 1. La remise à 0 force l'appel d'une routine d'initialisation interne qui vérifie B<POSIXLY_CORRECT>  et vérifie les extensions GNU dans I<optstring>.

note: type: Plain text
en: The POSIX.2 specification of B<getopt>()  has a technical error described in POSIX.2 Interpretation 150.  The GNU implementation (and probably all other implementations) implements the correct behavior rather than that specified.
fr: Les spécifications POSIX.2 de B<getopt>() contiennent une erreur technique décrite dans POSIX.2 interprétation 150. L'implémentation GNU (et probablement toutes les autres) adopte un comportement correct différent de la spécification.

note: type: Plain text
en: The following trivial example program uses B<getopt>()  to handle two program options: I<-n>, with no associated value; and I<-t val>, which expects an associated value.
fr: Le programme d'exemple trivial suivant utilise B<getopt>() avec 2 options\ :I<-n> sans valeur associée et I<-t val> qui nécessite une valeur.

note: type: Plain text
en: The following example program illustrates the use of B<getopt_long>()  with most of its features.
fr: Le programme suivant illustre l'utilisation de B<getopt_long>() avec la plupart de ses fonctionnalités.

note: type: TH
en: 2010-11-16
fr: 16 novembre 2010

note: type: Plain text
en: getpagesize - get memory page size
fr: getpagesize - Obtenir la taille des pages mémoire du système

note: type: Plain text
en: B<getpagesize>():
fr: B<getpagesize>()\ :

note: .SH HISTORY This call first appeared in 4.2BSD. type: Plain text
en: The function B<getpagesize>()  returns the number of bytes in a memory page, where "page" is a fixed-length block, the unit for memory allocation and file mapping performed by B<mmap>(2).
fr: La fonction B<getpagesize>() renvoie le nombre d'octets dans une page. Une «\ page\ » est un bloc de taille fixe, et est l'unité pour l'allocation de la mémoire et la projection de fichiers réalisées par B<mmap>(2).

note: type: Plain text
en: SVr4, 4.4BSD, SUSv2.  In SUSv2 the B<getpagesize>()  call is labeled LEGACY, and in POSIX.1-2001 it has been dropped; HP-UX does not have this call.
fr: SVr4, BSD\ 4.4, SUSv2. Dans SUSv2 l'appel B<getpagesize>() est indiqué comme historique, et dans POSIX.1-2001 il a été abandonné\ ; HP-UX n'offre pas cet appel.

note: type: Plain text
en: Portable applications should employ I<sysconf(_SC_PAGESIZE)> instead of B<getpagesize>():
fr: Les applications portables doivent utiliser I<sysconf(_SC_PAGESIZE)> plutôt que B<getpagesize>() :

note: type: Plain text
en: (Most systems allow the synonym B<_SC_PAGE_SIZE> for B<_SC_PAGESIZE>.)
fr: La plupart des systèmes autorisant le synonyme B<_SC_PAGE_SIZE> pour B<_SC_PAGESIZE>.

note: type: Plain text
en: Whether B<getpagesize>()  is present as a Linux system call depends on the architecture.  If it is, it returns the kernel symbol B<PAGE_SIZE>, whose value depends on the architecture and machine model.  Generally, one uses binaries that are dependent on the architecture but not on the machine model, in order to have a single binary distribution per architecture.  This means that a user program should not find B<PAGE_SIZE> at compile time from a header file, but use an actual system call, at least for those architectures (like sun4) where this dependency exists.  Here libc4, libc5, glibc 2.0 fail because their B<getpagesize>()  returns a statically derived value, and does not use a system call.  Things are OK in glibc 2.1.
fr: Que la routine B<getpagesize>() sous Linux invoque un appel système ou non dépend de l'architecture. Si c'est le cas, elle renvoie la valeur du symbole B<PAGE_SIZE> du noyau, dont la valeur dépend de l'architecture et du modèle de machine. Généralement, on utilise des exécutables binaires qui dépendent de l'architecture mais pas du modèle de machine afin d'avoir une seule distribution binaire par architecture. Ceci signifie qu'un programme utilisateur ne doit pas rechercher la valeur de B<PAGE_SIZE> dans les fichiers d'en\(hytête lors de la compilation, mais invoquer véritablement un appel système, au moins pour les architectures où cette dépendance existe (comme sun4). En ce sens, libc4, libc5 et glibc 2.0 font erreur car leur version de B<getpagesize>() renvoie une valeur calculée statiquement, et n'invoque pas d'appel système. Tout est arrangé depuis la glibc 2.1.

note: type: TH
en: 2014-02-11
fr: 11 février 2014

note: type: Plain text
en: gettid - get thread identification
fr: gettid - Obtenir l'identifiant de thread

note: type: Plain text
en: B<gettid>()  returns the caller's thread ID (TID).  In a single-threaded process, the thread ID is equal to the process ID (PID, as returned by B<getpid>(2)).  In a multithreaded process, all threads have the same PID, but each one has a unique TID.  For further details, see the discussion of B<CLONE_THREAD> in B<clone>(2).
fr: B<gettid>() renvoie l'identifiant de thread (TID) du processus appelant. Dans un processus avec un seul thread, l'identifiant de thread est égal à l'identifiant du processus (le PID tel que renvoyé par B<getpid>(2)). Dans un processus multithreadé, tous les processus ont le même PID mais chacun a un TID unique. Pour plus de détails, consultez la discussion sur B<CLONE_THREAD> dans B<clone>(2).

note: type: Plain text
en: On success, returns the thread ID of the calling process.
fr: En cas de succès, renvoie l'identifiant de thread du processus appelant.

note: type: Plain text
en: This call is always successful.
fr: Cette fonction réussit toujours.

note: type: Plain text
en: The B<gettid>()  system call first appeared on Linux in kernel 2.4.11.
fr: L'appel système B<gettid>() est apparu pour la première fois sous Linux avec le noyau 2.4.11.

note: type: Plain text
en: B<gettid>()  is Linux-specific and should not be used in programs that are intended to be portable.
fr: B<gettid>() est spécifique à Linux et ne doit pas être employé dans un programme conçu pour être portable.

note: FIXME See http://sourceware.org/bugzilla/show_bug.cgi?id=6399 "gettid() should have a wrapper" type: Plain text
en: Glibc does not provide a wrapper for this system call; call it using B<syscall>(2).
fr: La glibc ne fournit pas de fonction autour de cet appel système\ ; utilisez B<syscall>(2) pour l'appeler.

note: type: Plain text
en: The thread ID returned by this call is not the same thing as a POSIX thread ID (i.e., the opaque value returned by B<pthread_self>(3)).
fr: Le TID renvoyé par cet appel n'est pas la même chose que l'identifiant de thread POSIX (c'est-à-dire, la valeur opaque renvoyée par B<pthread_self>(3)).

note: type: TH
en: 2010-09-10
fr: 10 septembre 2010

note: type: Plain text
en: getumask - get file creation mask
fr: getumask - Renvoyer le masque de permission pour la création de fichier

note: type: Plain text
en: This function returns the current file creation mask.  It is equivalent to
fr: Cette fonction renvoie le masque de permissions utilisé lors de la création d'un fichier. Elle est équivalente à

note: type: Plain text
en: except that it is documented to be thread-safe (that is, shares a lock with the B<umask>(2)  library call).
fr: excepté qu'elle est explicitement prévue pour pouvoir être utilisée de manière saine dans le contexte d'une application multithread (elle partage un sémaphore avec la fonction B<umask>(2)).

note: type: Plain text
en: This is a vaporware GNU extension.
fr: Ceci est une extension GNU peu utilisée.

note: type: Plain text
en: This function is documented but not implemented yet in glibc, as at version 2.9.
fr: Cette fonction est documentée mais non encore implémentée dans la glibc version 2.9.

note: type: TH
en: 2013-06-21
fr: 21 juin 2013

note: type: Plain text
en: getusershell, setusershell, endusershell - get permitted user shells
fr: getusershell, setusershell, endusershell - Obtenir la liste des interpréteurs de commande utilisateur permis

note: type: Plain text
en: B<getusershell>(), B<setusershell>(), B<endusershell>():
fr: B<getusershell>(), B<setusershell>(), B<endusershell>()\ :

note: type: Plain text
en: The B<getusershell>()  function returns the next line from the file I</etc/shells>, opening the file if necessary.  The line should contain the pathname of a valid user shell.  If I</etc/shells> does not exist or is unreadable, B<getusershell>()  behaves as if I</bin/sh> and I</bin/csh> were listed in the file.
fr: La fonction B<getusershell>() renvoie la ligne suivante de I</etc/shells>, ouvrant le fichier si besoin est. Cette ligne doit contenir le chemin d'accès à un interpréteur de commandes utilisateur valide. Si I</etc/shells> n'existe pas, ou n'est pas lisible, B<getusershell>() se comporte comme si I</bin/sh> et I</bin/csh> étaient indiqués dans le fichier.

note: type: Plain text
en: The B<setusershell>()  function rewinds I</etc/shells>.
fr: La fonction B<setusershell>() ramène le pointeur au début du fichier I</etc/shells>.

note: type: Plain text
en: The B<endusershell>()  function closes I</etc/shells>.
fr: La fonction B<endusershell>() ferme le fichier I</etc/shells>.

note: type: Plain text
en: The B<getusershell>()  function returns NULL on end-of-file.
fr: La B<getusershell>() renvoie un pointeur NULL si la fin du fichier est atteinte.

note: type: Plain text
en: /etc/shells
fr: I</etc/shells>

note: type: Plain text
en: The B<getusershell>(), B<setusershell>()  and B<endusershell>()  functions are not thread-safe.
fr: Les fonctions B<getusershell>(), B<setusershell>() et B<endusershell>() ne sont pas sûres dans un contexte multithread.

note: type: Plain text
en: 4.3BSD.
fr: BSD\ 4.3.

note: type: TH
en: 2012-12-31
fr: 31 décembre 2012

note: type: Plain text
en: idle - make process 0 idle
fr: idle - Rendre le processus 0 inactif

note: type: Plain text
en: B<idle>()  is an internal system call used during bootstrap.  It marks the process's pages as swappable, lowers its priority, and enters the main scheduling loop.  B<idle>()  never returns.
fr: B<idle>() est un appel système interne, utilisé pendant le démarrage du système. Il sert à rendre swappables les pages du processus, à abaisser sa priorité, et entrer dans la boucle principale de l'ordonnanceur. B<idle>() ne retourne jamais.

note: type: Plain text
en: Only process 0 may call B<idle>().  Any user process, even a process with superuser permission, will receive B<EPERM>.
fr: Seul le processus 0 peut appeler B<idle>(). Tout processus utilisateur, même avec les privilèges de superutilisateur déclenchera l'erreur B<EPERM> s'il tente d'appeler B<idle>().

note: type: Plain text
en: B<idle>()  never returns for process 0, and always returns -1 for a user process.
fr: B<idle>() ne retourne jamais lorsqu'il est appelé par le processus 0, et renvoie toujours -1 aux processus utilisateurs.

note: type: Plain text
en: Always, for a user process.
fr: Toujours déclenchée pour un processus utilisateur.

note: type: Plain text
en: Since Linux 2.3.13, this system call does not exist anymore.
fr: Depuis le noyau Linux 2.3.13, cet appel système n'existe plus.

note: type: Plain text
en: This function is Linux-specific, and should not be used in programs intended to be portable.
fr: Cette fonction est spécifique à Linux et ne devrait pas être employée dans des programmes destinés à être portables.

note: type: TH
en: 2013-11-08
fr: 8 novembre 2013

note: type: Plain text
en: ioctl - control device
fr: ioctl - Contrôler les périphériques

note: POSIX says 'request' is int, but glibc has the above See https://bugzilla.kernel.org/show_bug.cgi?id=42705 type: Plain text
en: B<int ioctl(int >I<d>B<, unsigned long >I<request>B<, ...);>
fr: B<int ioctl(int >I<d>B<, unsigned long >I<requête>B<, ...);>

note: type: Plain text
en: The B<ioctl>()  function manipulates the underlying device parameters of special files.  In particular, many operating characteristics of character special files (e.g., terminals) may be controlled with B<ioctl>()  requests.  The argument I<d> must be an open file descriptor.
fr: La fonction B<ioctl>() modifie le comportement des périphériques sous\(hyjacents des fichiers spéciaux. En particulier, de nombreuses caractéristiques des fichiers spéciaux en mode caractère (par exemple des terminaux) peuvent être contrôlées avec des requêtes B<ioctl>(). L'argument I<d> doit être un descripteur de fichier ouvert.

note: type: Plain text
en: The second argument is a device-dependent request code.  The third argument is an untyped pointer to memory.  It's traditionally B<char *>I<argp> (from the days before B<void *> was valid C), and will be so named for this discussion.
fr: Le second argument est le code de la requête dépendant du périphérique. Le troisième argument est un pointeur non typé. Il est traditionnellement défini en B<char *>I<argp> (ceci date de l'époque avant que B<void *> soit du C valide), et sera ainsi nommé dans le reste de cette page.

note: type: Plain text
en: An B<ioctl>()  I<request> has encoded in it whether the argument is an I<in> parameter or I<out> parameter, and the size of the argument I<argp> in bytes.  Macros and defines used in specifying an B<ioctl>()  I<request> are located in the file I<E<lt>sys/ioctl.hE<gt>>.
fr: Une I<requête> B<ioctl>() encapsule le fait que l'argument est un paramètre d'I<entrée> ou de I<sortie> ainsi que la taille de l'argument I<argp> en octets. Les macros et constantes symboliques décrivant les I<requêtes> B<ioctl>() se trouvent dans le fichier I<E<lt>sys/ioctl.hE<gt>>.

note: type: Plain text
en: Usually, on success zero is returned.  A few B<ioctl>()  requests use the return value as an output parameter and return a nonnegative value on success.  On error, -1 is returned, and I<errno> is set appropriately.
fr: En général, B<ioctl> renvoie 0 s'il réussit, ou -1 s'il échoue. Certaines requêtes ioctl utilisent la valeur de retour comme paramètre de sortie, et renvoient une valeur positive si elles réussissent (et -1 pour les erreurs). En cas d'échec, I<errno> contient le code d'erreur.

note: type: Plain text
en: I<d> is not a valid descriptor.
fr: I<d> n'est pas un descripteur de fichier valide.

note: type: Plain text
en: I<argp> references an inaccessible memory area.
fr: I<argp> pointe en dehors de l'espace d'adressage valide.

note: type: Plain text
en: I<Request> or I<argp> is not valid.
fr: La I<requête> ou l'argument I<argp> n'est pas valide.

note: type: Plain text
en: I<d> is not associated with a character special device.
fr: I<d> n'est pas associé avec un fichier spécial en mode caractère.

note: type: Plain text
en: The specified request does not apply to the kind of object that the descriptor I<d> references.
fr: La requête indiquée ne s'applique pas au type d'objet associé avec le descripteur I<d>.

note: type: Plain text
en: No single standard.  Arguments, returns, and semantics of B<ioctl>()  vary according to the device driver in question (the call is used as a catch-all for operations that don't cleanly fit the UNIX stream I/O model).  See B<ioctl_list>(2)  for a list of many of the known B<ioctl>()  calls.  The B<ioctl>()  function call appeared in Version 7 AT&T UNIX.
fr: Pas de vrai standard. Les arguments, les valeurs de retour, et la sémantique des B<ioctl>() varient en fonction du périphérique concerné (cet appel système est utilisé pour encapsuler les opérations qui ne se conforment pas bien au modèle UNIX des entrées/sorties par flux). Consultez B<ioctl_list>(2) pour une liste des principaux appels B<ioctl>() connus. La fonction B<ioctl>() est apparue dans l'UNIX d'AT&T Version 7.

note: type: Plain text
en: In order to use this call, one needs an open file descriptor.  Often the B<open>(2)  call has unwanted side effects, that can be avoided under Linux by giving it the B<O_NONBLOCK> flag.
fr: Pour utiliser cet appel, on a besoin d'un descripteur de fichier ouvert. Souvent, l'appel B<open>(2) a des effets de bord non désirés, qui peuvent être évités sous Linux en lui passant le drapeau B<O_NONBLOCK>.

note: type: TH
en: 2013-09-17
fr: 17 septembre 2013

note: type: Plain text
en: ioctl_list - list of ioctl calls in Linux/i386 kernel
fr: ioctl_list - Liste des requêtes ioctl pour Linux/i386

note: type: Plain text
en: This is Ioctl List 1.3.27, a list of ioctl calls in Linux/i386 kernel 1.3.27.  It contains 421 ioctls from I<E<lt>/usr/include/{asm,linux}/*.hE<gt>>.  For each ioctl, its numerical value, its name, and its argument type are given.
fr: On trouvera ici la liste des arguments IOCTL du noyau Linux/i386 1.3.27. Cette liste contient 421 requêtes ioctl situées dans I<E<lt>/usr/include/{asm,linux}/*.hE<gt>>. Pour chaque ioctl, on trouvera sa valeur numérique, son nom et le type de son argument.

note: type: Plain text
en: An argument type of I<const struct foo\ *> means the argument is input to the kernel.  I<struct foo\ *> means the kernel outputs the argument.  If the kernel uses the argument for both input and output, this is marked with I<//\ I-O>.
fr: Un type d'argument I<const struct foo\ *> signifie que l'argument est une entrée pour le noyau, alors que I<struct foo\ *> signifie que c'est une sortie pour le noyau. Si le noyau utilise un argument à la fois en entrée et sortie, il sera indiqué avec I<//\ I-O>.

note: type: Plain text
en: Some ioctls take more arguments or return more values than a single structure.  These are marked I<//\ MORE> and documented further in a separate section.
fr: Certains ioctls prennent plusieurs arguments, ou retournent plus de valeurs qu'une simple structure. Ceux\(hyci sont indiqués avec I<// PLUS> et documentés plus tard.

note: type: Plain text
en: This list is very incomplete.
fr: Cette liste n'est absolument pas complète.

note: type: SS
en: ioctl structure
fr: Structure des ioctl

note: added two sections - aeb type: Plain text
en: Ioctl command values are 32-bit constants.  In principle these constants are completely arbitrary, but people have tried to build some structure into them.
fr: Les valeurs des commandes ioctl sont des constantes 32 bits. En principe, ces constantes sont complètement arbitraires, mais certaines personnes ont essayé de les structurer un peu.

note: type: Plain text
en: The old Linux situation was that of mostly 16-bit constants, where the last byte is a serial number, and the preceding byte(s) give a type indicating the driver.  Sometimes the major number was used: 0x03 for the B<HDIO_*> ioctls, 0x06 for the B<LP*> ioctls.  And sometimes one or more ASCII letters were used.  For example, B<TCGETS> has value 0x00005401, with 0x54 = \(aqT\(aq indicating the terminal driver, and B<CYGETTIMEOUT> has value 0x00435906, with 0x43 0x59 = \(aqC\(aq \(aqY\(aq indicating the cyclades driver.
fr: Dans les anciens noyaux Linux, la plupart étaient des constantes 16 bits, où le dernier octet était un numéro de série, et le(s) précédent(s) indiquai(en)t le pilote. Parfois c'était le numéro majeur\ : 0x03 pour les ioctls B<HDIO_*>, 0x06 pour ceux B<LP*>. Et parfois une ou plusieurs lettres ASCII. Par exemple, B<TCGETS> vaut 0x00005401, avec 0x54 = \(aqT\(aq indiquant le pilote de terminal, et B<CYGETTIMEOUT> vaut 0x00435906, avec 0x43 0x59 = \(aqC\(aq \(aqY\(aq indiquant le pilote cyclade.

note: type: Plain text
en: Later (0.98p5) some more information was built into the number.  One has 2 direction bits (00: none, 01: write, 10: read, 11: read/write)  followed by 14 size bits (giving the size of the argument), followed by an 8-bit type (collecting the ioctls in groups for a common purpose or a common driver), and an 8-bit serial number.
fr: Ensuite (0.98p5) un peu plus d'information a été ajoutée dans le numéro. Il y a deux bits de direction (00\ : aucune, 01\ : écriture, 10\ : lecture, 11\ : lecture/écriture) suivis de 14 bits de taille (indiquant la taille de l'argument), suivis d'un type sur 8 bits (ce qui regroupe les ioctls pour un même but ou un même pilote), puis un numéro de série sur 8 bits.

note: type: Plain text
en: The macros describing this structure live in I<E<lt>asm/ioctl.hE<gt>> and are B<_IO(type,nr)> and B<{_IOR,_IOW,_IOWR}(type,nr,size)>.  They use I<sizeof(size)> so that size is a misnomer here: this third argument is a data type.
fr: Les macros écrivant cette structure se trouvent dans I<E<lt>asm/ioctl.hE<gt>> et sont B<_IO(type,nr)> et B<{_IOR,_IOW,_IOWR}(type,nr,size)>. Elles utilisent I<sizeof(size)> ce qui indique que "size" est un mauvais nom ici, le troisième paramètre étant le type de donnée.

note: type: Plain text
en: Note that the size bits are very unreliable: in lots of cases they are wrong, either because of buggy macros using I<sizeof(sizeof(struct))>, or because of legacy values.
fr: Notez que les bits de taille sont peu fiables \(em dans de nombreux cas ils sont faux, soit à cause d'une macro boguée utilisant I<sizeof(sizeof(struct))>, ou à cause de valeurs imposées.

note: type: Plain text
en: Thus, it seems that the new structure only gave disadvantages: it does not help in checking, but it causes varying values for the various architectures.
fr: Ainsi, il semble que la nouvelle structure n'offre que des désagréments\ : elle n'aide pas vraiment aux vérifications, mais elle crée des valeurs différentes sur les diverses architectures.

note: type: Plain text
en: Decent ioctls return 0 on success and -1 on error, while any output value is stored via the argument.  However, quite a few ioctls in fact return an output value.  This is not yet indicated below.
fr: Les ioctls décents renvoient 0 s'ils réussissent et -1 en cas d'erreur, avec toute valeur de sortie stockée dans l'argument. Toutefois, certains renvoient en fait la valeur de sortie directement. Ce n'est pas encore indiqué ci\(hydessous.

note: type: Plain text
en: // Main table.
fr: // Table principale.

note: type: tbl table
en: 0x0000541C	TIOCLINUX	const char *	// MORE
fr: 0x0000541C	TIOCLINUX	const char *	// PLUS

note: type: tbl table
en: 0x0000530C	CDROMREADMODE2	const struct cdrom_msf *	// MORE
fr: 0x0000530C	CDROMREADMODE2	const struct cdrom_msf *	// PLUS

note: type: tbl table
en: 0x0000530D	CDROMREADMODE1	const struct cdrom_msf *	// MORE
fr: 0x0000530D	CDROMREADMODE1	const struct cdrom_msf *	// PLUS

note: type: tbl table
en: 0x0000530E	CDROMREADAUDIO	const struct cdrom_read_audio *	// MORE
fr: 0x0000530E	CDROMREADAUDIO	const struct cdrom_read_audio *	// PLUS

note: type: tbl table
en: 0x00005314	CDROMREADRAW	const struct cdrom_msf *	// MORE
fr: 0x00005314	CDROMREADRAW	const struct cdrom_msf *	// PLUS

note: type: tbl table
en: 0x00005315	CDROMREADCOOKED	const struct cdrom_msf *	// MORE
fr: 0x00005315	CDROMREADCOOKED	const struct cdrom_msf *	// PLUS

note: type: tbl table
en: 0x0000001E	FDRAWCMD	struct floppy_raw_cmd *	// MORE // I-O
fr: 0x0000001E	FDRAWCMD	struct floppy_raw_cmd *	// PLUS // I-O

note: type: tbl table
en: 0x000089F0	EQL_ENSLAVE	struct ifreq *	// MORE // I-O
fr: 0x000089F0	EQL_ENSLAVE	struct ifreq *	// PLUS // I-O

note: type: tbl table
en: 0x000089F1	EQL_EMANCIPATE	struct ifreq *	// MORE // I-O
fr: 0x000089F1	EQL_EMANCIPATE	struct ifreq *	// PLUS // I-O

note: type: tbl table
en: 0x000089F2	EQL_GETSLAVECFG	struct ifreq *	// MORE // I-O
fr: 0x000089F2	EQL_GETSLAVECFG	struct ifreq *	// PLUS // I-O

note: type: tbl table
en: 0x000089F3	EQL_SETSLAVECFG	struct ifreq *	// MORE // I-O
fr: 0x000089F3	EQL_SETSLAVECFG	struct ifreq *	// PLUS // I-O

note: type: tbl table
en: 0x000089F4	EQL_GETMASTRCFG	struct ifreq *	// MORE // I-O
fr: 0x000089F4	EQL_GETMASTRCFG	struct ifreq *	// PLUS // I-O

note: type: tbl table
en: 0x000089F5	EQL_SETMASTRCFG	struct ifreq *	// MORE // I-O
fr: 0x000089F5	EQL_SETMASTRCFG	struct ifreq *	// PLUS // I-O

note: type: tbl table
en: 0x00004B6B	GIO_FONTX	struct console_font_desc *	// MORE // I-O
fr: 0x00004B6B	GIO_FONTX	struct console_font_desc *	// PLUS // I-O

note: type: tbl table
en: 0x00004B6C	PIO_FONTX	const struct console_font_desc *	//MORE
fr: 0x00004B6C	PIO_FONTX	const struct console_font_desc *	//PLUS

note: type: tbl table
en: 0x00004B34	KDADDIO	int	// MORE
fr: 0x00004B34	KDADDIO	int	// PLUS

note: type: tbl table
en: 0x00004B35	KDDELIO	int	// MORE
fr: 0x00004B35	KDDELIO	int	// PLUS

note: type: tbl table
en: 0x00004B36	KDENABIO	void	// MORE
fr: 0x00004B36	KDENABIO	void	// PLUS

note: type: tbl table
en: 0x00004B37	KDDISABIO	void	// MORE
fr: 0x00004B37	KDDISABIO	void	// PLUS

note: type: tbl table
en: 0x00004B3C	KDMAPDISP	void	// MORE
fr: 0x00004B3C	KDMAPDISP	void	// PLUS

note: type: tbl table
en: 0x00004B3D	KDUNMAPDISP	void	// MORE
fr: 0x00004B3D	KDUNMAPDISP	void	// PLUS

note: type: tbl table
en: 0x00004B66	GIO_UNIMAP	struct unimapdesc *	// MORE // I-O
fr: 0x00004B66	GIO_UNIMAP	struct unimapdesc *	// PLUS // I-O

note: type: tbl table
en: 0x00004B67	PIO_UNIMAP	const struct unimapdesc *	// MORE
fr: 0x00004B67	PIO_UNIMAP	const struct unimapdesc *	// PLUS

note: type: tbl table
en: 0x00005385	SCSI_IOCTL_PROBE_HOST	const int *	// MORE
fr: 0x00005385	SCSI_IOCTL_PROBE_HOST	const int *	// PLUS

note: type: tbl table
en: 0x0000890B	SIOCADDRT	const struct rtentry *	// MORE
fr: 0x0000890B	SIOCADDRT	const struct rtentry *	// PLUS

note: type: tbl table
en: 0x0000890C	SIOCDELRT	const struct rtentry *	// MORE
fr: 0x0000890C	SIOCDELRT	const struct rtentry *	// PLUS

note: type: tbl table
en: 0x00008912	SIOCGIFCONF	struct ifconf *	// MORE // I-O
fr: 0x00008912	SIOCGIFCONF	struct ifconf *	// PLUS // I-O

note: type: tbl table
en: 0x00008924	SIOCSIFHWADDR	const struct ifreq *	// MORE
fr: 0x00008924	SIOCSIFHWADDR	const struct ifreq *	// PLUS

note: type: Plain text
en: // More arguments.  Some ioctl's take a pointer to a structure which contains additional pointers.  These are documented here in alphabetical order.
fr: // Plus de paramètres. Certains ioctls utilisent un pointeur sur une structure contenant des pointeurs supplémentaires. Les voici par ordre alphabétique.

note: type: Plain text
en: B<CDROMREADAUDIO> takes an input pointer I<const struct cdrom_read_audio\ *>.  The I<buf> field points to an output buffer of length I<nframes\ * CD_FRAMESIZE_RAW>.
fr: B<CDROMREADAUDIO> prend un pointeur du type I<const struct cdrom_read_audio\ *>. Le champ I<buf> pointe sur un tampon de sortie de longueur I<nframes\ * CD_FRAMESIZE_RAW>.

note: type: Plain text
en: B<CDROMREADCOOKED>, B<CDROMREADMODE1>, B<CDROMREADMODE2>, and B<CDROMREADRAW> take an input pointer I<const struct cdrom_msf\ *>.  They use the same pointer as an output pointer to I<char []>.  The length varies by request.  For B<CDROMREADMODE1>, most drivers use CD_FRAMESIZE, but the Optics Storage driver uses OPT_BLOCKSIZE instead (both have the numerical value 2048).
fr: B<CDROMREADCOOKED>, B<CDROMREADMODE1>, B<CDROMREADMODE2>, et B<CDROMREADRAW> prennent un pointeur d'entrée I<const struct cdrom_msf\ *>. Ils utilisent le même pointeur en sortie en tant que I<char []>. La longueur dépend de l'action. Pour B<CDROMREADMODE1>, la plupart des pilotes de périphériques utilisent 'CD_FRAMESIZE', mais le pilote Optics Storage utilise 'OPT_BLOCKSIZE' à la place (les deux valent 2048).

note: type: Plain text
en:     CDROMREADCOOKED    char [CD_FRAMESIZE]
        CDROMREADMODE1     char [CD_FRAMESIZE or OPT_BLOCKSIZE]
        CDROMREADMODE2     char [CD_FRAMESIZE_RAW0]
        CDROMREADRAW       char [CD_FRAMESIZE_RAW]
fr:     CDROMREADCOOKED    char [CD_FRAMESIZE]
        CDROMREADMODE1     char [CD_FRAMESIZE ou OPT_BLOCKSIZE]
        CDROMREADMODE2     char [CD_FRAMESIZE_RAW0]
        CDROMREADRAW       char [CD_FRAMESIZE_RAW]

note: type: Plain text
en: B<EQL_ENSLAVE>, B<EQL_EMANCIPATE>, B<EQL_GETSLAVECFG>, B<EQL_SETSLAVECFG>, B<EQL_GETMASTERCFG>, and B<EQL_SETMASTERCFG> take a I<struct ifreq\ *>.  The I<ifr_data> field is a pointer to another structure as follows:
fr: B<EQL_ENSLAVE>, B<EQL_EMANCIPATE>, B<EQL_GETSLAVECFG>, B<EQL_SETSLAVECFG>, B<EQL_GETMASTERCFG> et B<EQL_SETMASTERCFG> prennent une I<struct ifreq\ *>. le champ I<ifr_data> est un pointeur sur une autre structure\ :

note: type: Plain text
en: B<FDRAWCMD> takes a I<struct floppy raw_cmd\ *>.  If I<flags & FD_RAW_WRITE> is nonzero, then I<data> points to an input buffer of length I<length>.  If I<flags & FD_RAW_READ> is nonzero, then I<data> points to an output buffer of length I<length>.
fr: B<FDRAWCMD> prend une I<struct floppy raw_cmd\ *>. Si I<flags & FD_RAW_WRITE> est non nul, alors I<data> pointe sur un tampon d'entrée de longueur I<length>. Si I<flags & FD_RAW_READ> est non nul, alors I<data> pointe sur un tampon de sortie de longueur I<length>.

note: type: Plain text
en: B<GIO_FONTX> and B<PIO_FONTX> take a I<struct console_font_desc\ *> or a I<const struct console_font_desc\ *>, respectively.  I<chardata> points to a buffer of I<char [charcount]>.  This is an output buffer for B<GIO_FONTX> and an input buffer for B<PIO_FONTX>.
fr: B<GIO_FONTX> et B<PIO_FONTX> prennent une I<struct console_font_desc\ *> et une I<const struct console_font_desc\ *>, respectivement. I<chardata> pointe sur un tampon I<char [charcount]>. C'est un tampon de sortie pour B<GIO_FONTX> et d'entrée pour B<PIO_FONTX>.

note: type: Plain text
en: B<GIO_UNIMAP> and B<PIO_UNIMAP> take a I<struct unimapdesc\ *> or a I<const struct unimapdesc\ *>, respectively.  I<entries> points to a buffer of I<struct unipair [entry_ct]>.  This is an output buffer for B<GIO_UNIMAP> and an input buffer for B<PIO_UNIMAP>.
fr: B<GIO_UNIMAP> et B<PIO_UNIMAP> prennent I<struct unimapdesc\ *> et une I<const struct unimapdesc\ *>, respectivement. I<entries> pointe sur un tampon I<struct unipair [entry_ct]>. C'est un tampon de sortie pour B<GIO_UNIMAP> et un tampon d'entrée pour B<PIO_UNIMAP>.

note: type: Plain text
en: KDADDIO, KDDELIO, KDDISABIO, and KDENABIO enable or disable access to I/O ports.  They are essentially alternate interfaces to 'ioperm'.
fr: KDADDIO, KDDELIO, KDDISABIO, et KDENABIO valident ou invalident les accès aux ports d'entrée/sortie. Ce sont surtout des alternatives d'interface à 'ioperm'.

note: type: Plain text
en: B<KDMAPDISP> and B<KDUNMAPDISP> enable or disable memory mappings or I/O port access.  They are not implemented in the kernel.
fr: B<KDMAPDISP> et B<KDUNMAPDISP> valident et invalident la projection en mémoire des ports d'entrée/sortie. Ils ne sont pas implémentés dans le noyau.

note: type: Plain text
en: B<SCSI_IOCTL_PROBE_HOST> takes an input pointer I<const int\ *>, which is a length.  It uses the same pointer as an output pointer to a I<char []> buffer of this length.
fr: B<SCSI_IOCTL_PROBE_HOST> prend un pointeur d'entrée I<const int\ *>, qui correspond à une longueur. Il utilise le même pointeur en sortie en tant que tampon I<char []> de cette longueur.

note: type: Plain text
en: B<SIOCADDRT> and B<SIOCDELRT> take an input pointer whose type depends on the protocol:
fr: B<SIOCADDRT> et B<SIOCDELRT> prennent un pointeur qui dépend du protocole\ :

note: type: Plain text
en:     Most protocols      const struct rtentry *
        AX.25               const struct ax25_route *
        NET/ROM             const struct nr_route_struct *
fr:     La plupart des protocoles   const struct rtentry *
        AX.25                       const struct ax25_route *
        NET/ROM                     const struct nr_route_struct *

note: type: Plain text
en: B<SIOCGIFCONF> takes a I<struct ifconf\ *>.  The I<ifc_buf> field points to a buffer of length I<ifc_len> bytes, into which the kernel writes a list of type I<struct ifreq []>.
fr: B<SIOCGIFCONF> prend une I<struct ifconf\ *>. Le champ I<ifc_buf> pointe sur un tampon de longueur I<ifc_len> octets, dans lequel le noyau écrit une liste de type I<struct ifreq []>.

note: type: Plain text
en: B<SIOCSIFHWADDR> takes an input pointer whose type depends on the protocol:
fr: B<SIOCSIFHWADDR> prend un pointeur d'entrée dont le type dépend du protocole\ :

note: type: Plain text
en:     Most protocols      const struct ifreq *
        AX.25               const char [AX25_ADDR_LEN]
fr:     La plupart des protocoles   const struct ifreq *
        AX.25                       const char [AX25_ADDR_LEN]

note: type: Plain text
en: B<TIOCLINUX> takes a I<const char\ *>.  It uses this to distinguish several independent subcases.  In the table below, I<N + foo> means I<foo> after an N-byte pad.  I<struct selection> is implicitly defined in I<drivers/char/selection.c>
fr: B<TIOCLINUX> prend un I<const char\ *>. Il utilise ceci pour distinguer entre différent cas. Dans la table ci\(hydessous, I<N + foo> signifie I<foo> après un remplissage de N octets. I<struct selection> est définie implicitement dans I<drivers/char/selection.c>.

note: type: Plain text
en: // Duplicate ioctls
fr: // Ioctls dupliqués

note: type: Plain text
en: This list does not include ioctls in the range B<SIOCDEVPRIVATE> and B<SIOCPROTOPRIVATE>.
fr: Cette liste n'inclut pas les ioctls dans l'intervalle entre B<SIOCDEVPRIVATE> et B<SIOCPROTOPRIVATE>.

note: type: Plain text
en: ioperm - set port input/output permissions
fr: ioperm - Positionner les autorisations d'entrée-sortie sur les ports

note: type: Plain text
en: B<#include E<lt>unistd.hE<gt>> /* for libc5 */
fr: B<#include E<lt>unistd.hE<gt>> /* pour libc5 */

note: type: Plain text
en: B<#include E<lt>sys/io.hE<gt>> /* for glibc */
fr: B<#include E<lt>sys/io.hE<gt>> /* pour glibc */

note: type: Plain text
en: B<ioperm>()  sets the port access permission bits for the calling thread for I<num> bits starting from port address I<from>.  If I<turn_on> is nonzero, then permission for the specified bits is enabled; otherwise it is disabled.  If I<turn_on> is nonzero, the calling thread must be privileged (B<CAP_SYS_RAWIO>).
fr: B<ioperm>() positionne les bits de permission d'accès du thread appelant aux ports commençant à l'adresse I<from> étalés sur I<num> bits. Si I<turn_on> n'est pas nul, les autorisations correspondantes aux bits indiqués sont activées, sinon désactivées. Si I<turn_on> est non nul, le thread appelant doit être privilégié (B<CAP_SYS_RAWIO>).

note: type: Plain text
en: Before Linux 2.6.8, only the first 0x3ff I/O ports could be specified in this manner.  For more ports, the B<iopl>(2)  system call had to be used (with a I<level> argument of 3).  Since Linux 2.6.8, 65,536 I/O ports can be specified.
fr: Avant Linux 2.6.8, seuls les 0x3ff premiers ports d'entrée-sortie pouvaient être indiqués de cette manière. Pour d'autres ports, il fallait utiliser l'appel système B<iopl>(2) (avec un paramètre I<level> de 3). Depuis Linux 2.6.8, 65 536 ports d'entrée-sortie peuvent être indiqués.

note: type: Plain text
en: Permissions are not inherited by the child created by B<fork>(2); following a B<fork>(2)  the child must turn on those permissions that it needs.  Permissions are preserved across B<execve>(2); this is useful for giving port access permissions to unprivileged programs.
fr: Les permissions ne sont pas héritées par le processus fils durant un B<fork>(2) : le process fils doit activer les permissions dont il en a besoin. En revanche, elles le sont lors d'un B<execve>(2). Ceci permet de donner des autorisations d'accès à des programmes non privilégiés.

note: type: Plain text
en: This call is mostly for the i386 architecture.  On many other architectures it does not exist or will always return an error.
fr: Cet appel existe principalement pour l'architecture i386. Sur beaucoup d'autres architectures, il est soit inexistant soit renvoie toujours une erreur.

note: type: Plain text
en: Invalid values for I<from> or I<num>.
fr: Valeur invalide pour I<from> ou I<num>.

note: type: Plain text
en: (on PowerPC) This call is not supported.
fr: (sur PowerPC) Cet appel n'est pas supporté.

note: Could not allocate I/O bitmap. type: Plain text
en: Out of memory.
fr: Plus de mémoire disponible.

note: type: Plain text
en: The calling thread has insufficient privilege.
fr: L'appelant n'a pas les privilèges nécessaires.

note: type: Plain text
en: B<ioperm>()  is Linux-specific and should not be used in programs intended to be portable.
fr: B<ioperm>() est spécifique a Linux et ne doit pas être utilisé dans des programmes destinés à être portables.

note: type: Plain text
en: The I</proc/ioports> file shows the I/O ports that are currently allocated on the system.
fr: Le fichier I</proc/ioports> indique les ports d'entrée-sortie actuellement alloués sur le système.

note: type: Plain text
en: Libc5 treats it as a system call and has a prototype in I<E<lt>unistd.hE<gt>>.  Glibc1 does not have a prototype.  Glibc2 has a prototype both in I<E<lt>sys/io.hE<gt>> and in I<E<lt>sys/perm.hE<gt>>.  Avoid the latter, it is available on i386 only.
fr: Libc5 considère qu'il s'agit d'un appel système et fournit le prototype dans I<E<lt>unistd.hE<gt>>. glibc1 n'offre pas de prototype. glibc2 fournit un prototype à la fois dans I<E<lt>sys/io.hE<gt>> et dans I<E<lt>sys/perm.hE<gt>>. Évitez ce dernier, il n'est disponible que sur les i386.

note: type: Plain text
en: lockf - apply, test or remove a POSIX lock on an open file
fr: lockf - Poser, examiner ou supprimer un verrou POSIX sur un fichier ouvert

note: type: Plain text
en: B<lockf>():
fr: B<lockf>() :

note: type: Plain text
en: Apply, test or remove a POSIX lock on a section of an open file.  The file is specified by I<fd>, a file descriptor open for writing, the action by I<cmd>, and the section consists of byte positions I<pos>..I<pos>+I<len>-1 if I<len> is positive, and I<pos>-I<len>..I<pos>-1 if I<len> is negative, where I<pos> is the current file position, and if I<len> is zero, the section extends from the current file position to infinity, encompassing the present and future end-of-file positions.  In all cases, the section may extend past current end-of-file.
fr: Cette fonction pose, examine, ou supprime un verrou POSIX sur un fichier ouvert. Le fichier est indiqué par I<fd>, un descripteur ouvert en écriture, l'action par I<cmd>, et la section par les octets aux positions I<pos>..I<pos>+I<len>-1 si I<len> est positive et I<pos>-I<len>..I<pos>-1 si I<len> est négative, où I<pos> est la position actuelle dans le fichier. Si I<len> vaut zéro, la section s'étend de la position courant à l'infini, englobant la fin de fichier et les extensions ultérieures. Dans tous les cas, la section peut s'étendre au delà de la fin du fichier.

note: type: Plain text
en: On Linux, B<lockf>()  is just an interface on top of B<fcntl>(2)  locking.  Many other systems implement B<lockf>()  in this way, but note that POSIX.1-2001 leaves the relationship between B<lockf>()  and B<fcntl>(2)  locks unspecified.  A portable application should probably avoid mixing calls to these interfaces.
fr: Sous Linux, B<lockf>() est une interface de vérrou au dessus de B<fcntl>(2). Beaucoup d'autres systèmes implémentent B<lockf>() de cette façon, cependant POSIX.1-2001 ne spécifie pas la relation de vérrou entre B<lockf>() et B<fcntl>(2). Une application portable ne devrait pas mixer des appels à ces deux interfaces.

note: type: Plain text
en: Valid operations are given below:
fr: Les opérations valides sont les suivantes\ :

note: type: Plain text
en: Set an exclusive lock on the specified section of the file.  If (part of) this section is already locked, the call blocks until the previous lock is released.  If this section overlaps an earlier locked section, both are merged.  File locks are released as soon as the process holding the locks closes some file descriptor for the file.  A child process does not inherit these locks.
fr: Poser un verrou exclusif sur la section indiquée du fichier. Si (une partie de) la section est déjà verrouillée, l'appel bloque jusqu'à la suppression du verrou précédent. Si la section recouvre un verrou existant (du même processus), les deux sont regroupés. Les verrouillages sont libérés lorsque le processus ferme un descripteur du fichier. Un processus fils n'hérite pas du verrou.

note: type: Plain text
en: Same as B<F_LOCK> but the call never blocks and returns an error instead if the file is already locked.
fr: Comme B<F_LOCK> mais l'appel n'est pas bloquant, il renvoie une erreur si le fichier est déjà verrouillé.

note: type: Plain text
en: Unlock the indicated section of the file.  This may cause a locked section to be split into two locked sections.
fr: Déverrouiller la section indiquée du fichier. Ceci peut conduire une section verrouillée à être découpée en deux sections.

note: type: Plain text
en: Test the lock: return 0 if the specified section is unlocked or locked by this process; return -1, set I<errno> to B<EAGAIN> (B<EACCES> on some other systems), if another process holds a lock.
fr: Vérifier s'il y a un verrou\ : l'appel renvoie 0 si la section indiquée est libre ou verrouillée par le processus appelant, et -1 avec B<EAGAIN> (B<EACCES> sur d'autres systèmes) dans I<errno> si un autre processus possède le verrou.

note: type: Plain text
en: The file is locked and B<F_TLOCK> or B<F_TEST> was specified, or the operation is prohibited because the file has been memory-mapped by another process.
fr: Le fichier est verrouillé et B<F_TLOCK> ou B<F_TEST> étaient indiqués, ou encore l'opération est impossible car le fichier est projetée dans la mémoire d'un autre processus.

note: type: Plain text
en: I<fd> is not an open file descriptor; or I<cmd> is B<F_LOCK> or B<F_TLOCK> and I<fd> is not a writable file descriptor.
fr: I<fd> n'est pas un descripteur de fichier ouvert, ou I<cmd> vaut B<F_LOCK> ou B<F_TLOCK> et I<fd> n'est pas un descripteur de fichier en écriture.

note: type: Plain text
en: The command was B<F_LOCK> and this lock operation would cause a deadlock.
fr: L'opération B<F_LOCK> demandée amènerait à un cas de blocage.

note: type: Plain text
en: An invalid operation was specified in I<cmd>.
fr: Une opération invalide a été réclamée sur I<cmd>.

note: type: Plain text
en: Too many segment locks open, lock table is full.
fr: La table des verrous est pleine.

note: type: Plain text
en: I<locks.txt> and I<mandatory-locking.txt> in the Linux kernel source directory I<Documentation/filesystems> (on older kernels, these files are directly under the I<Documentation> directory, and I<mandatory-locking.txt> is called I<mandatory.txt>)
fr: I<locks.txt> et I<mandatory-locking.txt> dans le répertoire I<Documentation/filesystems> des sources du noyau Linux. (Sur d'anciens noyaux, ces fichiers se trouvent dans le répertoire I<Documentation> et I<mandatory-locking.txt> est appelé I<mandatory.txt>.)

note: type: TH
en: 2008-04-22
fr: 22 avril 2008

note: type: Plain text
en: mincore - determine whether pages are resident in memory
fr: mincore - Déterminer quelles pages se trouvent en mémoire physique

note: type: Plain text
en: B<mincore>(): _BSD_SOURCE || _SVID_SOURCE
fr: B<mincore>() : _BSD_SOURCE || _SVID_SOURCE

note: type: Plain text
en: B<mincore>()  returns a vector that indicates whether pages of the calling process's virtual memory are resident in core (RAM), and so will not cause a disk access (page fault) if referenced.  The kernel returns residency information about the pages starting at the address I<addr>, and continuing for I<length> bytes.
fr: B<mincore>() renvoie un tableau qui indique si les pages de l'espace d'adressage virtuel du processus appelant sont en mémoire physique (RAM), auquel cas un accès à ces pages ne causera pas d'accès disque (défaut de page). Le noyau renvoie les informations concernant les pages à partir de l'adresse I<addr> sur une longueur de I<length> octets.

note: type: Plain text
en: The I<addr> argument must be a multiple of the system page size.  The I<length> argument need not be a multiple of the page size, but since residency information is returned for whole pages, I<length> is effectively rounded up to the next multiple of the page size.  One may obtain the page size (B<PAGE_SIZE>)  using I<sysconf(_SC_PAGESIZE)>.
fr: Le paramètre I<addr> doit être un multiple de la taille de page du système. Le paramètre I<length> n'est pas forcément multiple de la taille de page, mais comme les informations sur les pages résidentes en mémoire sont renvoyées pour des pages entières, I<length> est en pratique arrondie au multiple supérieur de la taille de page. On peut obtenir la taille de page (B<PAGE_SIZE>) en appelant I<sysconf(_SC_PAGESIZE)>.

note: type: Plain text
en: The I<vec> argument must point to an array containing at least I<(length+PAGE_SIZE-1) / PAGE_SIZE> bytes.  On return, the least significant bit of each byte will be set if the corresponding page is currently resident in memory, and be clear otherwise.  (The settings of the other bits in each byte are undefined; these bits are reserved for possible later use.)  Of course the information returned in I<vec> is only a snapshot: pages that are not locked in memory can come and go at any moment, and the contents of I<vec> may already be stale by the time this call returns.
fr: Le paramètre I<vec> doit pointer sur un tableau de longueur au moins égale à I<(length+PAGE_SIZE-1) / PAGE_SIZE> octets. En retour, le bit de poids faible de chaque octet sera à 1 si la page correspondante est en mémoire physique, à 0 sinon (les autres bits de chaque octet sont indéfinis\ ; ils sont réservés pour une possible utilisation ultérieure). Bien sûr, ce n'est qu'un instantané \(em les pages qui ne sont pas verrouillées en mémoire peuvent aller et venir à tout moment, et le contenu de I<vec> peut être déjà périmé au retour de l'appel.

note: type: Plain text
en: On success, B<mincore>()  returns zero.  On error, -1 is returned, and I<errno> is set appropriately.
fr: S'il réussit, B<mincore>() renvoie zéro. En cas d'erreur, il renvoie -1 et remplit I<errno> avec la valeur d'erreur.

note: type: Plain text
en: B<EAGAIN> kernel is temporarily out of resources.
fr: B<EAGAIN> Le noyau manque temporairement de ressources.

note: type: Plain text
en: I<vec> points to an invalid address.
fr: I<vec> pointe vers une adresse illégale.

note: type: Plain text
en: I<addr> is not a multiple of the page size.
fr: I<addr> n'est pas un multiple de la taille de page.

note: type: Plain text
en: I<length> is greater than (I<TASK_SIZE> - I<addr>).  (This could occur if a negative value is specified for I<length>, since that value will be interpreted as a large unsigned integer.)  In Linux 2.6.11 and earlier, the error B<EINVAL> was returned for this condition.
fr: I<length> est plus grand que (I<TASK_SIZE>\ -\ I<addr>). Ceci peut se produire si I<length> a une valeur négative, car cette valeur sera interprétée comme un entier non signé. Sous Linux 2.6.11 et précédents, cette condition renvoyait l'erreur B<EINVAL>.

note: type: Plain text
en: I<addr> to I<addr> + I<length> contained unmapped memory.
fr: La zone entre I<addr> et I<addr>\ +\ I<length> contient de la mémoire non projetée.

note: type: Plain text
en: Available since Linux 2.3.99pre1 and glibc 2.2.
fr: Disponible depuis Linux 2.3.99pre1 et glibc 2.2.

note: It is on at least NetBSD, FreeBSD, OpenBSD, Solaris 8, AIX 5.1, SunOS 4.1 .SH HISTORY The .BR mincore () function first appeared in 4.4BSD. type: Plain text
en: B<mincore>()  is not specified in POSIX.1-2001, and it is not available on all UNIX implementations.
fr: B<mincore>() n'est pas décrite par POSIX.1-2001, et n'est pas disponible sur toutes les variantes UNIX.

note: Linux (up to now, 2.6.5), .B mincore does not return correct information for MAP_PRIVATE mappings: for a MAP_PRIVATE file mapping, returns the residency of the file pages, rather than any modified process-private pages that have been copied on write; for a MAP_PRIVATE mapping of .IR /dev/zero , alwa
en: Before kernel 2.6.21, B<mincore>()  did not return correct information for B<MAP_PRIVATE> mappings, or for nonlinear mappings (established using B<remap_file_pages>(2)).
fr: Avant le noyau 2.6.21, B<mincore>() ne renvoyait pas d'information correcte pour les projections B<MAP_PRIVATE>, ou pour les projections non linéaires (établies avec B<remap_file_pages>(2)).

note: type: Plain text
en: mkdir, mkdirat - create a directory
fr: mkdir, mkdirat - Créer un répertoire

note: type: Plain text
en: B<#include E<lt>fcntl.hE<gt>           >/* Definition of AT_* constants */
    B<#include E<lt>sys/stat.hE<gt>>
fr: B<#include E<lt>fcntl.hE<gt>>           /* Définition des constantes AT_* */
    B<#include E<lt>sys/stat.hE<gt>>

note: type: Plain text
en: B<mkdirat>():
fr: B<mkdirat>()\ :

note: type: Plain text
en: B<mkdir>()  attempts to create a directory named I<pathname>.
fr: B<mkdir>() crée un nouveau répertoire nommé I<pathname>.

note: type: Plain text
en: The argument I<mode> specifies the permissions to use.  It is modified by the process's I<umask> in the usual way: the permissions of the created directory are (I<mode> & ~I<umask> & 0777).  Other mode bits of the created directory depend on the operating system.  For Linux, see below.
fr: Le paramètre I<mode> indique les permissions à appliquer au répertoire. Cette valeur peut être modifiée par le I<umask> du processus\ : les permissions du répertoire effectivement créé vaudront (I<mode> & ~I<umask> & 0777). Les autres bits de mode du répertoire créé dépendent du système d'exploitation. Pour Linux, voir plus loin.

note: type: Plain text
en: The newly created directory will be owned by the effective user ID of the process.  If the directory containing the file has the set-group-ID bit set, or if the filesystem is mounted with BSD group semantics (I<mount -o bsdgroups> or, synonymously I<mount -o grpid>), the new directory will inherit the group ownership from its parent; otherwise it will be owned by the effective group ID of the process.
fr: Le répertoire nouvellement créé aura pour propriétaire l'UID effectif du processus. Si le répertoire au\(hydessus du nouveau répertoire a son bit Set-GID à 1, ou si le système de fichiers est monté avec une sémantique de groupe BSD (I<mount -o bsdgroups> ou, de façon équivalente, I<mount -o grpid>), le nouveau répertoire héritera de l'appartenance au groupe de son parent. Sinon il appartiendra au groupe correspondant au GID effectif du processus.

note: type: Plain text
en: If the parent directory has the set-group-ID bit set, then so will the newly created directory.
fr: Si le répertoire parent a son bit Set-GID à 1, le nouveau répertoire aura aussi son bit Set-GID à 1.

note: type: Plain text
en: The B<mkdirat>()  system call operates in exactly the same way as B<mkdir>(), except for the differences described here.
fr: L'appel système B<mkdirat>() fonctionne exactement comme B<mkdir>(), les seules différences étant celles décrites ici.

note: type: Plain text
en: If the pathname given in I<pathname> is relative, then it is interpreted relative to the directory referred to by the file descriptor I<dirfd> (rather than relative to the current working directory of the calling process, as is done by B<mkdir>()  for a relative pathname).
fr: Si le chemin donné dans I<pathname> est relatif, il est interprété par rapport au répertoire référencé par le descripteur de fichier I<dirfd> (plutôt que par rapport au répertoire courant du processus appelant, comme dans B<mkdir>()).

note: type: Plain text
en: If I<pathname> is relative and I<dirfd> is the special value B<AT_FDCWD>, then I<pathname> is interpreted relative to the current working directory of the calling process (like B<mkdir>()).
fr: Si I<pathname> est relatif et I<dirfd> a la valeur spéciale B<AT_FDCWD>, I<pathname> est interprété relativement au répertoire courant du processus appelant, comme dans B<mkdir>().

note: type: Plain text
en: See B<openat>(2)  for an explanation of the need for B<mkdirat>().
fr: Consultez B<openat>(2) pour une explication de la nécessité de B<mkdirat>().

note: type: Plain text
en: B<mkdir>()  and B<mkdirat>()  return zero on success, or -1 if an error occurred (in which case, I<errno> is set appropriately).
fr: B<mkdir>() et B<mkdirat>() renvoient 0 en cas de succès, ou -1 si une erreur se produit, auquel cas I<errno> contient le code d'erreur.

note: type: Plain text
en: The parent directory does not allow write permission to the process, or one of the directories in I<pathname> did not allow search permission.  (See also B<path_resolution>(7).)
fr: Le répertoire parent n'autorise pas l'écriture au processus, ou l'un des répertoires de I<pathname> n'autorise pas la consultation de son contenu. (Consultez aussi B<path_resolution>(7).)

note: type: Plain text
en: The user's quota of disk blocks or inodes on the filesystem has been exhausted.
fr: Le quota de blocs de disque ou d'inœuds de l'utilisateur sur le système de fichiers a été atteint.

note: type: Plain text
en: I<pathname> already exists (not necessarily as a directory).  This includes the case where I<pathname> is a symbolic link, dangling or not.
fr: I<pathname> existe déjà (pas nécessairement un répertoire). Cela inclut le cas où I<pathname> est un lien symbolique, pouvant pointer nulle part.

note: type: Plain text
en: The number of links to the parent directory would exceed B<LINK_MAX>.
fr: Le nombre maximal de liens vers le répertoire parent dépasserait B<LINK_MAX>.

note: type: Plain text
en: I<pathname> was too long.
fr: I<pathname> est trop long.

note: type: Plain text
en: A directory component in I<pathname> does not exist or is a dangling symbolic link.
fr: Un des répertoires du chemin d'accès I<pathname> n'existe pas ou est un lien symbolique pointant nulle part.

note: type: Plain text
en: The device containing I<pathname> has no room for the new directory.
fr: Le périphérique contenant I<pathname> n'a pas assez de place pour le nouveau répertoire.

note: type: Plain text
en: The new directory cannot be created because the user's disk quota is exhausted.
fr: Le nouveau répertoire ne peut être créé car le quota de disque de l'utilisateur est dépassé.

note: type: Plain text
en: The filesystem containing I<pathname> does not support the creation of directories.
fr: Le système de fichiers contenant I<pathname> ne permet pas la création de répertoires.

note: type: Plain text
en: I<pathname> refers to a file on a read-only filesystem.
fr: I<pathname> est placé sur un système de fichiers en lecture seule.

note: type: Plain text
en: The following additional errors can occur for B<mkdirat>():
fr: Les erreurs supplémentaires suivantes peuvent également se produire pour B<mkdirat>() :

note: type: Plain text
en: B<mkdirat>()  was added to Linux in kernel 2.6.16; library support was added to glibc in version 2.4.
fr: B<mkdirat>() a été ajouté au noyau Linux dans sa version 2.6.16 ; la glibc le gère depuis la version 2.4.

note: SVr4 documents additional EIO, EMULTIHOP type: Plain text
en: B<mkdir>(): SVr4, BSD, POSIX.1-2001, POSIX.1-2008.
fr: B<mkdir>() : SVr4, BSD, POSIX.1-2001, POSIX.1-2008.

note: type: Plain text
en: B<mkdirat>(): POSIX.1-2008.
fr: B<mkdirat>() : POSIX.1-2008.

note: type: Plain text
en: Under Linux apart from the permission bits, only the B<S_ISVTX> mode bit is honored.  That is, under Linux the created directory actually gets mode (I<mode> & ~I<umask> & 01777).  See also B<stat>(2).
fr: Sous Linux, à part les bits de permission, seul le bit de mode B<S_ISVTX> est honoré. C'est\(hyà\(hydire que sous Linux, le répertoire réellement créé prend le mode (I<mode> & ~I<umask> & 01777). Consultez aussi B<stat>(2).

note: type: Plain text
en: There are many infelicities in the protocol underlying NFS.  Some of these affect B<mkdir>().
fr: Il y a de nombreux problèmes avec le protocole sous\(hyjacent à NFS, certains d'entre eux peuvent affecter B<mkdir>().

note: type: TH
en: 2007-07-26
fr: 26 juillet 2007

note: type: Plain text
en: nice - change process priority
fr: nice - Modifier la politesse du processus

note: type: Plain text
en: B<nice>(): _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE
fr: B<nice>() : _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE

note: type: Plain text
en: B<nice>()  adds I<inc> to the nice value for the calling process.  (A higher nice value means a low priority.)  Only the super\%user may specify a negative increment, or priority increase.  The range for nice values is described in B<getpriority>(2).
fr: B<nice>() ajoute I<inc> à la valeur de politesse du processus appelant. (Une grande valeur de politesse signifie une faible priorité.) Seul le superutilisateur peut indiquer une valeur I<inc> négative (ce qui rend le processus plus prioritaire). L'intervalle des valeurs de politesse est décrit dans B<getpriority>(2).

note: type: Plain text
en: On success, the new nice value is returned (but see NOTES below).  On error, -1 is returned, and I<errno> is set appropriately.
fr: B<nice> renvoie la nouvelle valeur de politesse s'il réussit (voir NOTES ci\(hydessous, ou -1 s'il échoue, auquel cas I<errno> contient le code d'erreur.

note: type: Plain text
en: The calling process attempted to increase its priority by supplying a negative I<inc> but has insufficient privileges.  Under Linux the B<CAP_SYS_NICE> capability is required.  (But see the discussion of the B<RLIMIT_NICE> resource limit in B<setrlimit>(2).)
fr: Le processus appelant a tenté d'augmenter sa priorité en fournissant une valeur I<inc> négative mais il n'a pas les privilèges suffisants. Sous Linux, la capacité B<CAP_SYS_NICE> est nécessaire. (Mais voir l'explication de la limite de ressources B<RLIMIT_NICE> dans B<setrlimit>(2).)

note: type: Plain text
en: SVr4, 4.3BSD, POSIX.1-2001.  However, the Linux and (g)libc (earlier than glibc 2.2.4) return value is nonstandard, see below.  SVr4 documents an additional B<EINVAL> error code.
fr: SVr4, BSD\ 4.3, POSIX.1-2001. Toutefois, la valeur de retour sous Linux avec la glibc (jusqu'à glibc 2.2.4) n'est pas standard, voir ci-dessous. SVr4 documente un code d'erreur supplémentaire B<EINVAL>.

note: type: Plain text
en: SUSv2 and POSIX.1-2001 specify that B<nice>()  should return the new nice value.  However, the Linux syscall and the B<nice>()  library function provided in older versions of (g)libc (earlier than glibc 2.2.4) return 0 on success.  The new nice value can be found using B<getpriority>(2).
fr: SUSv2 et POSIX.1-2001 indiquent que cet appel système renvoie la nouvelle valeur de courtoisie, tandis que l'appel système Linux et la routine de la glibc (jusqu'à glibc 2.2.4) renvoient 0 en cas de réussite. La nouvelle valeur de courtoisie peut être obtenue grâce à B<getpriority>(2).

note: type: Plain text
en: Since glibc 2.2.4, B<nice>()  is implemented as a library function that calls B<getpriority>(2)  to obtain the new nice value to be returned to the caller.  With this implementation, a successful call can legitimately return -1.  To reliably detect an error, set I<errno> to 0 before the call, and check its value when B<nice>()  returns -1.
fr: Depuis la glibc 2.2.4, B<nice>() est implémenté comme une fonction de bibliothèque qui appelle B<getpriority>(2) pour obtenir la nouvelle valeur de politesse, qu'elle renvoie à l'appelant. Avec cette implémentation, un code de retour -1 est tout à fait possible. Pour détecter les erreurs, il faut mettre I<errno> à zéro avant l'appel, et examiner sa valeur si B<nice>() renvoie -1.

note: type: Plain text
en: pread, pwrite - read from or write to a file descriptor at a given offset
fr: pread, pwrite - Lire ou écrire à une position donnée d'un descripteur de fichier

note: type: Plain text
en: B<pread>(), B<pwrite>():
fr: B<pread>(), B<pwrite>() :

note: type: Plain text
en: B<pread>()  reads up to I<count> bytes from file descriptor I<fd> at offset I<offset> (from the start of the file) into the buffer starting at I<buf>.  The file offset is not changed.
fr: B<pread>() lit au maximum I<count> octets depuis le descripteur I<fd>, à la position I<offset> (mesurée depuis le début du fichier), et les place dans la zone commençant à l'adresse I<buf>. La position de la tête de lecture du fichier n'est pas modifiée par cet appel système.

note: type: Plain text
en: B<pwrite>()  writes up to I<count> bytes from the buffer starting at I<buf> to the file descriptor I<fd> at offset I<offset>.  The file offset is not changed.
fr: B<pwrite>() lit au maximum I<count> octets dans la zone mémoire pointée par I<buf>, et les écrit à la position I<offset> (mesurée depuis le début du fichier) dans le descripteur I<fd>. La position de la tête d'écriture du fichier n'est pas modifiée.

note: type: Plain text
en: The file referenced by I<fd> must be capable of seeking.
fr: Dans les deux cas, le fichier décrit par I<fd> doit permettre le positionnement.

note: type: Plain text
en: On success, the number of bytes read or written is returned (zero indicates that nothing was written, in the case of B<pwrite>(), or end of file, in the case of B<pread>()), or -1 on error, in which case I<errno> is set to indicate the error.
fr: S'ils réussissent, ces appels système renvoient le nombre d'octets lus ou écrits (0 indiquant que rien n'a été écrit dans le cas de B<pwrite>(), ou la fin du fichier dans le cas de B<pread>()). En cas d'échec, ils renvoient -1, et remplissent I<errno> en conséquence.

note: type: Plain text
en: B<pread>()  can fail and set I<errno> to any error specified for B<read>(2)  or B<lseek>(2).  B<pwrite>()  can fail and set I<errno> to any error specified for B<write>(2)  or B<lseek>(2).
fr: B<pread>() peut échouer et fournir dans I<errno> n'importe quelle erreur indiquée par B<read>(2) ou B<lseek>(2). B<pwrite>() peut échouer et fournir dans I<errno> n'importe quelle erreur indiquée par B<write>(2) ou B<lseek>(2).

note: type: Plain text
en: The B<pread>()  and B<pwrite>()  system calls were added to Linux in version 2.1.60; the entries in the i386 system call table were added in 2.1.69.  C library support (including emulation using B<lseek>(2)  on older kernels without the system calls) was added in glibc 2.1.
fr: Les appels système B<pread>() et B<pwrite>() ont été ajoutés dans le noyau Linux 2.1.60. Les points d'entrée dans la table des appels i386 furent instaurés dans la version 2.1.69. Le support par la bibliothèque C, y compris l'émulation utilisant B<lseek>(2) sur les anciens noyaux sans ces appels système, fut ajouté dans la glibc 2.1.

note: type: Plain text
en: The B<pread>()  and B<pwrite>()  system calls are especially useful in multithreaded applications.  They allow multiple threads to perform I/O on the same file descriptor without being affected by changes to the file offset by other threads.
fr: Les appels système B<pread>() et B<pwrite>() sont particulièrement utiles dans les applications multithreadées . Ils permettent à plusieurs threads d'effectuer des entrées et sorties sur un même descripteur de fichier sans être affecté des déplacements au sein du fichier dans les autres threads.

note: type: Plain text
en: On Linux, the underlying system calls were renamed in kernel 2.6: B<pread>()  became B<pread64>(), and B<pwrite>()  became B<pwrite64>().  The system call numbers remained the same.  The glibc B<pread>()  and B<pwrite>()  wrapper functions transparently deal with the change.
fr: Sous Linux, les appels système sous-jacents ont été renommés dans le noyau 2.6 : B<pread>()  devint B<pread64>(), et B<pwrite>()  devint B<pwrite64>(). Les numéros d'appel système demeurèrent inchangés. Les fonctions B<pread>() et B<pwrite>() de la glibc qui les encapsulent gèrent ce changement de manière transparente.

note: type: Plain text
en: On some 32-bit architectures, the calling signature for these system calls differ, for the reasons described in B<syscall>(2).
fr: Sur certaines architectures 32 bits, la signature d'appel de ces appels système est différente, pour les raisons expliquées dans B<syscall>(2).

note: FIXME https://bugzilla.kernel.org/show_bug.cgi?id=43178 type: Plain text
en: POSIX requires that opening a file with the B<O_APPEND> flag should have no affect on the location at which B<pwrite>()  writes data.  However, on Linux, if a file is opened with B<O_APPEND>, B<pwrite>()  appends data to the end of the file, regardless of the value of I<offset>.
fr: POSIX impose qu'ouvrir un fichier avec l'attribut B<O_APPEND> ne devrait pas affecter l'emplacement où B<pwrite>() écrit les données. Cependant avec Linux, si un fichier est ouvert avec B<O_APPEND>, B<pwrite>() écrit les données à la fin du fichier, quelle que soit la valeur d'I<offset>.

note: type: Plain text
en: set_thread_area - set a thread local storage (TLS) area
fr: set_thread_area - Définir la zone de stockage local (TLS) du thread

note: type: Plain text
en: B<set_thread_area>()  sets an entry in the current thread's thread-local storage (TLS) array.  The TLS array entry set by B<set_thread_area>()  corresponds to the value of I<u_info-E<gt>entry_number> passed in by the user.  If this value is in bounds, B<set_thread_area>()  copies the TLS descriptor pointed to by I<u_info> into the thread's TLS array.
fr: B<set_thread_area>() remplit une entrée de la table TLS de stockage du thread en cours. Le numéro de l'entrée remplie par B<set_thread_area>() correspond à la valeur I<u_info-E<gt>entry_number> fournie par l'utilisateur. Si la valeur est dans les limites, B<set_thread_area>() copie le descripteur pointé par I<u_info> dans la table TLS du thread.

note: type: Plain text
en: When B<set_thread_area>()  is passed an I<entry_number> of -1, it uses a free TLS entry.  If B<set_thread_area>()  finds a free TLS entry, the value of I<u_info-E<gt>entry_number> is set upon return to show which entry was changed.
fr: Quand B<set_thread_area>() reçoit un numéro I<entry_number> valant -1, il utilise une entrée libre dans la table TLS. Si B<set_thread_area>() trouve une entrée TLS libre, la valeur de I<u_info-E<gt>entry_number> est remplie au retour pour montrer quelle entrée a été modifiée.

note: type: Plain text
en: B<set_thread_area>()  returns 0 on success, and -1 on failure, with I<errno> set appropriately.
fr: B<set_thread_area>() renvoie 0 s'il réussit et -1 s'il échoue et écrit I<errno> en conséquence.

note: type: Plain text
en: A free TLS entry could not be located.
fr: Impossible de trouver une entrée TLS libre.

note: type: Plain text
en: A version of B<set_thread_area>()  first appeared in Linux 2.5.29.
fr: Une version de B<set_thread_area>() est apparue dans Linux 2.5.29.

note: type: Plain text
en: B<set_thread_area>()  is Linux-specific and should not be used in programs that are intended to be portable.
fr: B<set_thread_area>() est spécifique à Linux et ne devrait pas être employé dans un programme conçu pour être portable.

note: type: Plain text
en: Glibc does not provide a wrapper for this system call, since it is generally intended only for use by threading libraries.  In the unlikely event that you want to call it directly, use B<syscall>(2).
fr: La glibc ne fournit pas de fonction autour de cet appel système, puisqu'il a normalement pour seul but d'être utilisé dans les bibliothèques de threads. Au cas improbable où vous voudriez l'appeler directement, utilisez B<syscall>(2).

note: type: TH
en: 2008-12-03
fr: 3 décembre 2008

note: type: Plain text
en: setup - setup devices and filesystems, mount root filesystem
fr: setup - Configurer les périphériques, les systèmes de fichiers et monter le système de fichiers racine

note: type: Plain text
en: B<setup>()  is called once from within I<linux/init/main.c>.  It calls initialization functions for devices and filesystems configured into the kernel and then mounts the root filesystem.
fr: B<setup>() est appelé une fois dans I<linux/init/main.c>. Il appelle les fonctions d'initialisation des périphériques et des systèmes de fichiers configurés dans le noyau. Ensuite, il monte le système de fichiers racine.

note: type: Plain text
en: No user process may call B<setup>().  Any user process, even a process with superuser permission, will receive B<EPERM>.
fr: Aucun processus ne peut appeler B<setup>(). Même un processus avec des privilèges superutilisateur déclenchera une erreur B<EPERM>.

note: type: Plain text
en: B<setup>()  always returns -1 for a user process.
fr: B<setup>() renvoie toujours -1 pour un processus utilisateur.

note: type: Plain text
en: Since Linux 2.1.121, no such function exists anymore.
fr: Depuis Linux 2.1.121, cette fonction n'existe plus.

note: type: Plain text
en: This function is Linux-specific, and should not be used in programs intended to be portable, or indeed in any programs at all.
fr: Cette fonction est spécifique à Linux et ne devrait pas être employée dans des programmes destinés à être portables, ou en fait dans n'importe quel programme.

note: type: Plain text
en: The calling sequence varied: at some times I<setup ()> has had a single argument I<void\ *BIOS> and at other times a single argument I<int magic>.
fr: Le prototype a varié avec le temps : à certains moments I<setup ()> avait un unique paramètre I<void\ *BIOS> et à d'autre moment, un unique paramètre I<int magic>.

note: type: Plain text
en: shells - pathnames of valid login shells
fr: shells - Chemins d'accès vers les interpréteurs de commandes initiaux valables

note: type: Plain text
en: I</etc/shells> is a text file which contains the full pathnames of valid login shells.  This file is consulted by B<chsh>(1)  and available to be queried by other programs.
fr: I</etc/shells> est un fichier texte contenant les chemins d'accès complets aux interpréteurs de commandes de connexion valables. Ce fichier est consulté par B<chsh>(1) et peut être également lu par d'autres programmes.

note: type: Plain text
en: Be aware that there are programs which consult this file to find out if a user is a normal user; for example, FTP daemons traditionally disallow access to users with shells not included in this file.
fr: Soyez conscient que certaines applications consultent ce fichier pour vérifier si un utilisateur donné est un utilisateur normal. Par exemple, les démons ftp interdisent traditionnellement l'accès aux utilisateurs dont l'interpréteur de commandes de connexion ne se trouve pas dans ce fichier.

note: type: Plain text
en: I</etc/shells> may contain the following paths:
fr: I</etc/shells> peut contenir les chemins suivants :

note: type: TH
en: 2010-02-03
fr: 3 février 2010

note: type: Plain text
en: sleep - sleep for the specified number of seconds
fr: sleep - Endormir le processus pour une durée déterminée

note: type: Plain text
en: B<unsigned int sleep(unsigned int >I<seconds>B<);>
fr: B<unsigned int sleep(unsigned int >I<nb_sec>B<);>

note: type: Plain text
en: B<sleep>()  makes the calling thread sleep until I<seconds> seconds have elapsed or a signal arrives which is not ignored.
fr: B<sleep>() endort le thread appelant jusqu'à ce que I<nb_sec> secondes se soient écoulées, ou jusqu'à ce qu'un signal non ignoré soit reçu.

note: type: Plain text
en: Zero if the requested time has elapsed, or the number of seconds left to sleep, if the call was interrupted by a signal handler.
fr: B<sleep>() renvoie zéro si le temps prévu s'est écoulé, ou le nombre de secondes restantes si l'appel a été interrompu par un gestionnaire de signal.

note: type: Plain text
en: B<sleep>()  may be implemented using B<SIGALRM>; mixing calls to B<alarm>(2)  and B<sleep>()  is a bad idea.
fr: B<sleep>() peut être implémenté en utilisant B<SIGALRM>\ ; ainsi l'utilisation conjointe de B<alarm>(2) et B<sleep>() est une très mauvaise idée.

note: type: Plain text
en: Using B<longjmp>(3)  from a signal handler or modifying the handling of B<SIGALRM> while sleeping will cause undefined results.
fr: L'utilisation de B<longjmp>(3) dans un gestionnaire de signaux, ou la modification du gestionnaire de B<SIGALRM> pendant la période de sommeil conduiront à un comportement imprévisible.

note: type: TH
en: 2014-02-25
fr: 25 février 2014

note: type: Plain text
en: swab - swap adjacent bytes
fr: swab - Échanger des octets adjacents

note: type: Plain text
en: B<#define _XOPEN_SOURCE>       /* See feature_test_macros(7) */
    B<#include E<lt>unistd.hE<gt>>
fr: B<#define _XOPEN_SOURCE>       /* Consultez feature_test_macros(7) */
    B<#include E<lt>unistd.hE<gt>>

note: type: Plain text
en: The B<swab>()  function copies I<n> bytes from the array pointed to by I<from> to the array pointed to by I<to>, exchanging adjacent even and odd bytes.  This function is used to exchange data between machines that have different low/high byte ordering.
fr: La fonction B<swab>() copie I<n> octets de la chaîne pointée par I<from> dans la chaîne pointée par I<to>, en échangeant les octets adjacents de rangs pairs et impairs. Cette fonction permet de transmettre des données entre des machines qui utilisent des ordres poids fort/poids faible différents.

note: type: Plain text
en: This function does nothing when I<n> is negative.  When I<n> is positive and odd, it handles I<n-1> bytes as above, and does something unspecified with the last byte.  (In other words, I<n> should be even.)
fr: Cette fonction ne fait rien si I<n> est négatif. Lorsque I<n> est positif et impair, elle manipule I<n-1> octets comme décrit plus haut, et agit de manière non précisée avec le dernier octet. Autrement dit, I<n> doit être pair\ !)

note: type: Plain text
en: The B<swab>()  function returns no value.
fr: La fonction B<swab>() ne renvoie pas de valeur.

note: type: Plain text
en: The B<swab>()  function is thread-safe.
fr: La fonction B<swab>() est sûre dans un contexte multithread.

note: type: Plain text
en: swapon, swapoff - start/stop swapping to file/device
fr: swapon, swapoff - Activer/désactiver un fichier ou un périphérique de swap

note: type: Plain text
en: B<#include E<lt>asm/page.hE<gt> /* to find PAGE_SIZE */>
fr: B<#include E<lt>asm/page.hE<gt> /* pour avoir PAGE_SIZE */>

note: type: Plain text
en: B<swapon>()  sets the swap area to the file or block device specified by I<path>.  B<swapoff>()  stops swapping to the file or block device specified by I<path>.
fr: B<swapon>() active le swap sur le fichier ou le périphérique bloc indiqué dans I<path>. B<swapoff>() arrête le swap sur le fichier ou le périphérique bloc indiqué dans I<path>.

note: type: Plain text
en: If the B<SWAP_FLAG_PREFER> flag is specified in the B<swapon>()  I<swapflags> argument, the new swap area will have a higher priority than default.  The priority is encoded within I<swapflags> as:
fr: Si l'attribut B<SWAP_FLAG_PREFER> est indiqué dans le paramètre I<swapflags> de B<swapon>(), la nouvelle zone de swap disposera d'une priorité plus élevée que la zone de swap par défaut. La priorité est codée ainsi\ :

note: type: Plain text
en: If the B<SWAP_FLAG_DISCARD> flag is specified in the B<swapon>()  I<swapflags> argument, freed swap pages will be discarded before they are reused, if the swap device supports the discard or trim operation.  (This may improve performance on some Solid State Devices, but often it does not.)  See also NOTES.
fr: Si l'attribut B<SWAP_FLAG_DISCARD> est indiqué dans le paramètre I<swapflags> de B<swapon>(), les pages d'échange libérées seront supprimées avant d'être réutilisées, si le périphérique d'échange prend en charge l'opération de mise au rebut (« discard ») ou d'élagage (« trim »). Ceci peut améliorer les performances sur certains périphériques SSD (« Solid State Devices »), mais souvent cela n'a pas d'influcence. Consultez aussi la section NOTES.

note: type: Plain text
en: These functions may be used only by a privileged process (one having the B<CAP_SYS_ADMIN> capability).
fr: Cette fonction ne peut être appelée que par un processus privilégié (qui a la capacité B<CAP_SYS_ADMIN>.

note: type: SS
en: Priority
fr: Priorité

note: type: Plain text
en: Each swap area has a priority, either high or low.  The default priority is low.  Within the low-priority areas, newer areas are even lower priority than older areas.
fr: Chaque zone de swap a une priorité, haute ou basse. La priorité par défaut est basse. Parmi les zones de basses priorités, les nouvelles zones sont toujours affectées d'une priorité inférieure à celle des zones précédentes.

note: type: Plain text
en: All priorities set with I<swapflags> are high-priority, higher than default.  They may have any nonnegative value chosen by the caller.  Higher numbers mean higher priority.
fr: Toutes les priorités définies avec l'argument I<swapflags> sont plus élevées que la priorité par défaut. Elles peuvent prendre n'importe quelle valeur positive ou nulle choisie par l'appelant. Plus la valeur est haute, plus la priorité est élevée.

note: type: Plain text
en: Swap pages are allocated from areas in priority order, highest priority first.  For areas with different priorities, a higher-priority area is exhausted before using a lower-priority area.  If two or more areas have the same priority, and it is the highest priority available, pages are allocated on a round-robin basis between them.
fr: Les pages de swap sont allouées dans les zones par ordre décroissant de priorité. Pour des zones de priorité différentes, la plus haute sera toujours remplie entièrement avant d'utiliser la zone de priorité plus faible. Si deux ou plus de zones ont la même priorité, et qu'il s'agit de la plus haute priorité disponible, les pages sont allouées en utilisant un algorithme Round-Robin entre elles.

note: type: Plain text
en: As of Linux 1.3.6, the kernel usually follows these rules, but there are exceptions.
fr: Sur Linux 1.3.6, le noyau suit généralement ces règles, mais il y a parfois des exceptions.

note: type: Plain text
en: (for B<swapon>())  The specified I<path> is already being used as a swap area.
fr: (pour B<swapon>()) Le chemin I<path> est déjà utilisé comme espace d'échange.

note: type: Plain text
en: The file I<path> exists, but refers neither to a regular file nor to a block device;
fr: Le fichier I<path> existe, mais ne référence ni un fichier ordinaire, ni un périphérique bloc.

note: type: Plain text
en: (B<swapon>())  The indicated path does not contain a valid swap signature or resides on an in-memory filesystem such as tmpfs.
fr: (B<swapon>())  Le fichier indiqué ne contient pas de signature de swap correcte ou réside sur un système de fichiers en mémoire comme tmpfs.

note: type: TP
en: B<EINVAL> (since Linux 3.4)
fr: B<EINVAL> (depuis Linux 3.4)

note: type: Plain text
en: (B<swapon>())  An invalid flag value was specified in I<flags>.
fr: (B<swapon>()) I<flags> contient un drapeau invalide.

note: type: Plain text
en: (B<swapoff>())  I<path> is not currently a swap area.
fr: (B<swapoff>()) Le chemin I<path> n'est pas actuellement un espace d'échange.

note: type: Plain text
en: The file I<path> does not exist.
fr: I<path> n'existe pas.

note: type: Plain text
en: The system has insufficient memory to start swapping.
fr: Pas assez de mémoire pour démarrer le swapping.

note: type: Plain text
en: The caller does not have the B<CAP_SYS_ADMIN> capability.  Alternatively, the maximum number of swap files are already in use; see NOTES below.
fr: L'appelant n'a pas la capacité B<CAP_SYS_ADMIN>, ou le nombre maximal de fichiers d'échange est atteint\ ; voir la section NOTES.

note: type: Plain text
en: These functions are Linux-specific and should not be used in programs intended to be portable.  The second I<swapflags> argument was introduced in Linux 1.3.2.
fr: Ces fonctions sont spécifiques à Linux et ne doivent pas être employées dans des programmes destinés à être portables. Le deuxième argument I<swapflags> a été introduit dans Linux 1.3.2.

note: type: Plain text
en: The partition or path must be prepared with B<mkswap>(8).
fr: La partition ou le fichier doivent être préparés par B<mkswap>(8).

note: type: Plain text
en: There is an upper limit on the number of swap files that may be used, defined by the kernel constant B<MAX_SWAPFILES>.  Before kernel 2.4.10, B<MAX_SWAPFILES> has the value 8; since kernel 2.4.10, it has the value 32.  Since kernel 2.6.18, the limit is decreased by 2 (thus: 30)  if the kernel is built with the B<CONFIG_MIGRATION> option (which reserves two swap table entries for the page migration features of B<mbind>(2)  and B<migrate_pages>(2)).  Since kernel 2.6.32, the limit is further decreased by 1 if the kernel is built with the B<CONFIG_MEMORY_FAILURE> option.
fr: Le nombre de fichiers d'échange qui peuvent être utilisés est limité par la constante B<MAX_SWAPFILES> du noyau. Avant le noyau 2.4.10, B<MAX_SWAPFILES> valait 8\ ; depuis Linux 2.4.10, il vaut 32. Depuis 2.6.18, cette limite est décrémentée de 2 (et vaut donc 30) si le noyau est compilé avec l'option B<CONFIG_MIGRATION> (qui réserve deux entrées de table de swap pour les possibilités de migration offertes par B<mbind>(2) et B<migrate_pages>(2)). Depuis Linux 2.6.32, la limite est encore décrémentée de 1 si le noyau est compilé avec l'option B<CONFIG_MEMORY_FAILURE>.

note: To be precise: 2.6.35.5 type: Plain text
en: Discard of swap pages was introduced in kernel 2.6.29, then made conditional on the B<SWAP_FLAG_DISCARD> flag in kernel 2.6.36, which still discards the entire swap area when B<swapon>()  is called, even if that flag bit is not set.
fr: La suppression de pages d'échange a été introduite dans le noyau 2.6.29, puis fut conditionnée à l'attribut B<SWAP_FLAG_DISCARD> dans le noyau 2.6.36, qui supprime toujours la zone d'échange entière quand B<swapon>() est appelée, même si ce bit d'attribut n'est pas mis.

note: type: Plain text
en: syscall - indirect system call
fr: syscall - appel système indirect

note: type: Plain text
en: B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */
    B<#include E<lt>unistd.hE<gt>>
    B<#include E<lt>sys/syscall.hE<gt>   >/* For SYS_xxx definitions */
fr: B<#define _GNU_SOURCE>         /* Consultez feature_test_macros(7) */
    B<#include E<lt>unistd.hE<gt>>
    B<#include E<lt>sys/syscall.hE<gt>   >/* Pour les définitions de SYS_xxx */

note: type: Plain text
en: B<int syscall(int >I<number>B<, ...);>
fr: B<int syscall(int >I<numéro>B<, ...);>

note: type: Plain text
en: B<syscall>()  is a small library function that invokes the system call whose assembly language interface has the specified I<number> with the specified arguments.  Employing B<syscall>()  is useful, for example, when invoking a system call that has no wrapper function in the C library.
fr: B<syscall>() est une petite fonction de bibliothèque qui invoque l'appel système dont l'interface en assembleur a le I<numéro> indiqué avec les arguments donnés. L'utilisation de B<syscall>() est pratique, par exemple, pour invoquer un appel système qui n'a pas de fonction autour de cet appel système dans la bibliothèque C.

note: type: Plain text
en: B<syscall>()  saves CPU registers before making the system call, restores the registers upon return from the system call, and stores any error code returned by the system call in B<errno>(3)  if an error occurs.
fr: B<syscall>() sauve les registres du processeur avant de faire l'appel système, restaure les registres au retour de l'appel système et stocke tous les codes d'erreur renvoyés par l'appel système dans B<errno>(3) en cas d'erreur.

note: type: Plain text
en: Symbolic constants for system call numbers can be found in the header file I<E<lt>sys/syscall.hE<gt>>.
fr: Les constantes symboliques correspondant aux appels système sont dans le fichier d'en-tête I<E<lt>sys/syscall.hE<gt>>.

note: type: Plain text
en: The return value is defined by the system call being invoked.  In general, a 0 return value indicates success.  A -1 return value indicates an error, and an error code is stored in I<errno>.
fr: La valeur de retour est définie par l'appel système invoqué. En général, une valeur de retour nulle indique une réussite. Une valeur de retour de -1 indique une erreur, et un code d'erreur est fourni dans I<errno>.

note: type: Plain text
en: B<syscall>()  first appeared in 4BSD.
fr: B<syscall>() est apparu dans BSD\ 4.

note: type: SS
en: Architecture-specific requirements
fr: Exigences dépendantes de l'architecture

note: type: Plain text
en: Each architecture ABI has its own requirements on how system call arguments are passed to the kernel.  For system calls that have a glibc wrapper (e.g., most system calls), glibc handles the details of copying arguments to the right registers in a manner suitable for the architecture.  However, when using B<syscall>()  to make a system call, the caller might need to handle architecture-dependent details; this requirement is most commonly encountered on certain 32-bit architectures.
fr: L'ABI de chaque architecture possède ses propres exigences sur la façon dont les paramètres des appels système sont passés au noyau. Pour les appels système qui ont une fonction d'enrobage de la glibc (comme par exemple la plupart des appels système), glibc s'occupe des détails pour copier les arguments dans les bons registres d'une manière adaptée à chaque architecture. Cependant, en utilisant B<syscall>()  pour effectuer un appel système, l'appelant peut avoir besoin de gérer certains détails dépendants de l'architecture ; cette exigence est en particulier rencontrée sur certaines architectures 32 bits.

note: type: Plain text
en: For example, on the ARM architecture Embedded ABI (EABI), a 64-bit value (e.g., I<long long>)  must be aligned to an even register pair.  Thus, using B<syscall>()  instead of the wrapper provided by glibc, the B<readahead>()  system call would be invoked as follows on the ARM architecture with the EABI:
fr: Par exemple, pour l'Embedded ABI (EABI) de l'architecture ARM, une valeur 64 bits (c'est-à-dire un I<long long>)  doit être alignée sur une paire de registres paire. Ainsi, en appelant B<syscall>()  au lieu de la fonction d'enrobage fournie par la glibc, l'appel système B<readahead>()  devrait être effectué ainsi sur l'architecture ARM avec l'EABI :

note: type: Plain text
en: Since the offset argument is 64 bits, and the first argument (I<fd>)  is passed in I<r0>, the caller must manually split and align the 64-bit value so that it is passed in the I<r2>/I<r3> register pair.  That means inserting a dummy value into I<r1> (the second argument of 0).
fr: Comme le paramètre offset est 64 bits, et le premier argument (I<fd>)  est passé dans I<r0>, l'appelant doit manuellement découper et aligner la valeur 64 bits afin de la passer dans la paire de registres I<r2>/I<r3>. Ceci implique de passer une valeur fantôme dans I<r1> (le second argument, qui vaut 0).

note: Mike Frysinger: this issue ends up forcing MIPS O32 to take 7 arguments to syscall() type: Plain text
en: Similar issues can occur on MIPS with the O32 ABI, on PowerPC with the 32-bit ABI, and on Xtensa.
fr: Des problèmes similaires peuvent survenir sur MIPS avec l'ABI O32, sur PowerPC avec l'ABI 32 bits, et sur Xtensa.

note: type: Plain text
en: The affected system calls are B<fadvise64_64>(2), B<ftruncate64>(2), B<posix_fadvise>(2), B<pread64>(2), B<pwrite64>(2), B<readahead>(2), B<sync_file_range>(2), and B<truncate64>(2).
fr: Les appels système concernés sont B<fadvise64_64>(2), B<ftruncate64>(2), B<posix_fadvise>(2), B<pread64>(2), B<pwrite64>(2), B<readahead>(2), B<sync_file_range>(2) et B<truncate64>(2).

note: type: SS
en: Architecture calling conventions
fr: Conventions d'appel par architecture

note: type: Plain text
en: Every architecture has its own way of invoking and passing arguments to the kernel.  The details for various architectures are listed in the two tables below.
fr: Chaque architecture possède sa façon propre d'invoquer et de passer des paramètres au noyau. Les détails pour diverses architectures sont donnés dans les deux tableaux ci-dessous.

note: type: Plain text
en: The first table lists the instruction used to transition to kernel mode, (which might not be the fastest or best way to transition to the kernel, so you might have to refer to B<vdso>(7)), the register used to indicate the system call number, and the register used to return the system call result.
fr: Le premier tableau donne l'instruction utilisée pour passer en mode noyau (qui n'est pas forcément la méthode la meilleure ou la plus rapide, vous devriez consulter B<vdso>(7)), le registre utilisé pour indiquer le numéro de l'appel système, et le registre utilisé comme code de retour de l'appel système.

note: type: tbl table
en: arch/ABI	instruction	syscall #	retval	Notes
fr: arch/ABI	instruction	appel syst.	val. ret.	Notes

note: type: tbl table
en: arm/OABI	swi NR	-	a1	NR is syscall #
fr: arm/OABI	swi NR	-	a1	T{
    NR : numéro d'appel syst.
    T}

note: type: tbl table
en: bool error/
fr: erreur booléenne/

note: type: tbl table
en: errno value
fr: valeur errno

note: type: tbl table
en: s390	svc 0	r1	r2	See below
fr: s390	svc 0	r1	r2	Voir ci-dessous.

note: type: tbl table
en: s390x	svc 0	r1	r2	See below
fr: s390x	svc 0	r1	r2	Voir ci-dessous

note: type: Plain text
en: For s390 and s390x, NR (the system call number)  may be passed directly with "svc NR" if it is less than 256.
fr: Pour s390 and s390x, NR (le numéro de l'appel système) peut être passé directement avec "svc NR" si NR est inférieur à 256.

note: type: Plain text
en: The second table shows the registers used to pass the system call arguments.
fr: Le second tableau montre les registres utilisés pour passer les paramètres de l'appel système.

note: type: tbl table
en: arch/ABI	arg1	arg2	arg3	arg4	arg5	arg6	arg7
fr: arch/ABI	par1	par2	par3	par4	par5	par6	par7

note: type: Plain text
en: Note that these tables don't cover the entire calling convention\(emsome architectures may indiscriminately clobber other registers not listed here.
fr: Notez que ces tableaux ne couvrent pas l'ensemble des conventions d'appel système, certaines architectures peuvent écraser d'autres registres non listés ici.

note: type: TH
en: 2014-03-31
fr: 31 mars 2014

note: type: Plain text
en: syscalls - Linux system calls
fr: syscalls - Appels système de Linux

note: type: Plain text
en: Linux system calls.
fr: Appels système de Linux.

note: type: Plain text
en: The system call is the fundamental interface between an application and the Linux kernel.
fr: L'appel système est l'interface fondamentale entre une application et le noyau Linux.

note: type: SS
en: System calls and library wrapper functions
fr: Appels système et fonctions de bibliothèque

note: type: Plain text
en: System calls are generally not invoked directly, but rather via wrapper functions in glibc (or perhaps some other library).  For details of direct invocation of a system call, see B<intro>(2).  Often, but not always, the name of the wrapper function is the same as the name of the system call that it invokes.  For example, glibc contains a function B<truncate>()  which invokes the underlying "truncate" system call.
fr: Les appels système ne sont en général pas appelé directement, mais à partir de fonctions de la glibc (ou d'une autre bibliothèque). Pour avoir des détails pour l'appel direct d'un appel système, consultez B<intro>(2). Souvent, mais pas toujours, le nom de la fonction de la bibliothèque est le même que celui de l'appel système à invoquer. Par exemple, la fonction B<truncate>() de la glibc invoque l'appel système « truncate » sous-jacent.

note: type: Plain text
en: Often the glibc wrapper function is quite thin, doing little work other than copying arguments to the right registers before invoking the system call, and then setting I<errno> appropriately after the system call has returned.  (These are the same steps that are performed by B<syscall>(2), which can be used to invoke system calls for which no wrapper function is provided.)  Note: system calls indicate a failure by returning a negative error number to the caller; when this happens, the wrapper function negates the returned error number (to make it positive), copies it to I<errno>, and returns -1 to the caller of the wrapper.
fr: Souvent, la fonction enveloppe de la glibc est très petite, ne faisant que très peu en plus de placer les paramètres dans les bons registres avant d'appeler l'appel système puis de positionner I<errno> comme il faut une fois que l'appel système a rendu la main. (Ce sont les mêmes étapes qui sont effectuées par B<syscall>(2), qui peut être utilisé pour les appels système pour lesquels il n'y a pas de fonction enveloppe de fournies.) Note : les appels système indiquent un échec en renvoyant un numéro d'erreur négatif à l'appelant ; quand ça arrive, la fonction enveloppe prend l'opposé du numéro d'erreur (pour le rendre positif), le copie dans I<errno> et renvoie -1 pour l'appelant de la fonction enveloppe.

note: type: Plain text
en: Sometimes, however, the wrapper function does some extra work before invoking the system call.  For example, nowadays there are (for reasons described below) two related system calls, B<truncate>(2)  and B<truncate64>(2), and the glibc B<truncate>()  wrapper function checks which of those system calls are provided by the kernel and determines which should be employed.
fr: Des fois, cependant, la fonction réalise certaines opérations avant d'invoquer l'appel système. Par exemple, de nos jour il y a deux appels système B<truncate>(2) et B<truncate64>(2) (pour les raisons données ci-dessous) et la fonction B<truncate>() de la glibc vérifie quels appels système sont fournis par le noyau et détermine lequel doit être utilisé.

note: type: SS
en: System call list
fr: Liste des appels système

note: type: Plain text
en: Below is a list of the Linux system calls.  In the list, the I<Kernel> column indicates the kernel version for those system calls that were new in Linux 2.2, or have appeared since that kernel version.  Note the following points:
fr: Voici une liste des appels système Linux. Dans cette liste, la colonne I<Noyau> indique la version du noyau pour laquelle ils sont apparus, s'ils sont apparu après la version 2.2 de Linux. Remarquez les points suivants.

note: type: Plain text
en: Where no kernel version is indicated, the system call appeared in kernel 1.0 or earlier.
fr: Si aucune version de noyau n'est indiquée, l'appel système est apparu dans le noyau 1.0 ou auparavant.

note: type: Plain text
en: Where a system call is marked "1.2" this means the system call probably appeared in a 1.1.x kernel version, and first appeared in a stable kernel with 1.2.  (Development of the 1.2 kernel was initiated from a branch of kernel 1.0.6 via the 1.1.x unstable kernel series.)
fr: Quand un appel système est marqué « 1.2 », cela signifie que l'appel système est probablement apparu dans une version 1.1.x du noyau et est apparu la première fois dans un noyau stable dans la version 1.2. (Le développement du noyau 1.2 a débuté à partir d'une branche de la version 1.0.6 du noyau, au travers de la série « non stable » des noyaux 1.1.x.)

note: Was kernel 2.0 started from a branch of 1.2.10? At least from the timestamps of the tarballs of of 1.2.10 and 1.3.0, that's how it looks, but in fact the diff doesn't seem very clear, the 1.3.0 .tar.bz is much bigger (2.0 MB) than the 1.2.10 .tar.bz2 (1.8 MB), and AEB points out the timestamps of so
en: Where a system call is marked "2.0" this means the system call probably appeared in a 1.3.x kernel version, and first appeared in a stable kernel with 2.0.  (Development of the 2.0 kernel was initiated from a branch of kernel 1.2.x, somewhere around 1.2.10, via the 1.3.x unstable kernel series.)
fr: Quand un appel système est marqué « 2.0 », cela signifie que l'appel système est probablement apparu dans une version 1.3.x du noyau et est apparu la première fois dans un noyau stable dans la version 2.0. (Le développement du noyau 2.0 a débuté à partir d'une branche de la version 1.2.x du noyau, vers la version 1.2.10, au travers de la série « non stable » des noyaux 1.3.x.)

note: type: Plain text
en: Where a system call is marked "2.2" this means the system call probably appeared in a 2.1.x kernel version, and first appeared in a stable kernel with 2.2.0.  (Development of the 2.2 kernel was initiated from a branch of kernel 2.0.21 via the 2.1.x unstable kernel series.)
fr: Quand un appel système est marqué « 2.2 », cela signifie que l'appel système est probablement apparu dans une version 2.1.x du noyau et est apparu la première fois dans un noyau stable dans la version 2.2.0. (Le développement du noyau 2.2 a débuté à partir d'une branche de la version 2.0.21 du noyau, au travers de la série « non stable » des noyaux 2.1.x.)

note: type: Plain text
en: Where a system call is marked "2.4" this means the system call probably appeared in a 2.3.x kernel version, and first appeared in a stable kernel with 2.4.0.  (Development of the 2.4 kernel was initiated from a branch of kernel 2.2.8 via the 2.3.x unstable kernel series.)
fr: Quand un appel système est marqué « 2.4 », cela signifie que l'appel système est probablement apparu dans une version 2.3.x du noyau et est apparu la première fois dans un noyau stable dans la version 2.4.0. (Le développement du noyau 2.4 a débuté à partir d'une branche de la version 2.2.8 du noyau, au travers de la série « non stable » des noyaux 2.3.x.)

note: type: Plain text
en: Where a system call is marked "2.6" this means the system call probably appeared in a 2.5.x kernel version, and first appeared in a stable kernel with 2.6.0.  (Development of kernel 2.6 was initiated from a branch of kernel 2.4.15 via the 2.5.x unstable kernel series.)
fr: Quand un appel système est marqué « 2.6 », cela signifie que l'appel système est probablement apparu dans une version 2.5.x du noyau et est apparu la première fois dans un noyau stable dans la version 2.6.0. (Le développement du noyau 2.6 a débuté à partir d'une branche de la version 2.4.15 du noyau, au travers de la série « non stable » des noyaux 2.5.x.)

note: type: Plain text
en: Starting with kernel 2.6.0, the development model changed, and new system calls may appear in each 2.6.x release.  In this case, the exact version number where the system call appeared is shown.  This convention continues with the 3.x kernel series, which followed on from kernel 2.6.39.
fr: A partir du noyau 2.6.0, le mode de développement a changé et de nouveaux appels système pourraient apparaître à chaque version 2.6.x. Dans ce cas, le numéro de version exact où l'appel système est apparu est indiqué. Cette convention continue de s'appliquer à la série des noyaux 3.x, qui ont succédé au noyau 2.6.39.

note: type: Plain text
en: In some cases, a system call was added to a stable kernel series after it branched from the previous stable kernel series, and then backported into the earlier stable kernel series.  For example some system calls that appeared in 2.6.x were also backported into a 2.4.x release after 2.4.15.  When this is so, the version where the system call appeared in both of the major kernel series is listed.
fr: Dans certains cas, un appel système a été ajouté à un noyau de la série stable après l'embranchement provenant de la série stable précédente, puis a été porté dans la série stable précédente du noyau. Par exemple certains appels système apparus dans 2.6.x ont été portés dans une version 2.4.x postérieure à la version 2.4.15. Dans ce cas, les deux versions des deux séries majeures du noyau dans lesquelles l'appel système est apparu sont mentionnées.

note: Looking at scripts/checksyscalls.sh in the kernel source is instructive about x86 specifics. type: Plain text
en: The list of system calls that are available as at kernel 3.14 (or in a few cases only on older kernels) is as follows:
fr: La liste des appels système qui sont disponibles dans la version 3.14 (ou dans certains cas pour certaines versions plus anciennes du noyau) est la suivante :

note: type: tbl table
en: B<System call>	B<Kernel>	B<Notes>
fr: B<Appel système>	B<Noyau>	B<Notes>

note: type: tbl table
en: B<accept>(2)	2.0	See notes on B<socketcall>(2)
fr: B<accept>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<alloc_hugepages>(2)	2.5.36	Removed in 2.5.44
fr: B<alloc_hugepages>(2)	2.5.36	Retiré dans 2.5.44

note: type: tbl table
en: Deprecated (does nothing)
fr: Obsolète (ne fait rien)

note: type: tbl table
en: since 2.6
fr: depuis 2.6

note: type: tbl table
en: B<bind>(2)	2.0	See notes on B<socketcall>(2)
fr: B<bind>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<cacheflush>(2)	1.2	Not on x86
fr: B<cacheflush>(2)	1.2	Pas sur x86

note: type: tbl table
en: See B<chown>(2) for
fr: Consultez B<chown>(2) pour de

note: type: tbl table
en: version details
fr: plus amples renseignements sur
    les versions

note: type: tbl table
en: B<connect>(2)	2.0	See notes on B<socketcall>(2)
fr: B<connect>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<create_module>(2)		Removed in 2.6
fr: B<create_module>(2)		Retiré dans 2.6

note: type: tbl table
en: B<fgetxattr>(2)	2.6; 2.4.18
fr: B<fgetxattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<flistxattr>(2)	2.6; 2.4.18
fr: B<flistxattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<free_hugepages>(2)	2.5.36	Removed in 2.5.44
fr: B<free_hugepages>(2)	2.5.36	Supprimé dans 2.5.44

note: type: tbl table
en: B<fremovexattr>(2)	2.6; 2.4.18
fr: B<fremovexattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<fsetxattr>(2)	2.6; 2.4.18
fr: B<fsetxattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<get_kernel_syms>(2)		Removed in 2.6
fr: B<get_kernel_syms>(2)		Retiré dans 2.6

note: type: tbl table
en: B<getpeername>(2)	2.0	See notes on B<socketcall>(2)
fr: B<getpeername>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<getpagesize>(2)	2.0	Not on x86
fr: B<getpagesize>(2)	2.0	Pas sur x86

note: type: tbl table
en: B<getsockname>(2)	2.0	See notes on B<socketcall>(2)
fr: B<getsockname>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<getsockopt>(2)	2.0	See notes on B<socketcall>(2)
fr: B<getsockopt>(2)	2.0	Voir notes de B<socketcall>(2)

note: \fBgetunwind\fP(2)	2.4.8	ia64; DEPRECATED type: tbl table
en: B<getxattr>(2)	2.6; 2.4.18
fr: B<getxattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<lgetxattr>(2)	2.6; 2.4.18
fr: B<lgetxattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<listen>(2)	2.0	See notes on B<socketcall>(2)
fr: B<listen>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<listxattr>(2)	2.6; 2.4.18
fr: B<listxattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<lremovexattr>(2)	2.6; 2.4.18
fr: B<lremovexattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<lsetxattr>(2)	2.6; 2.4.18
fr: B<lsetxattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<msgctl>(2)	2.0	See notes on B<ipc>(2)
fr: B<msgctl>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<msgget>(2)	2.0	See notes on B<ipc>(2)
fr: B<msgget>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<msgrcv>(2)	2.0	See notes on B<ipc>(2)
fr: B<msgrcv>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<msgsnd>(2)	2.0	See notes on B<ipc>(2)
fr: B<msgsnd>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<nfsservctl>(2)	2.2	Removed in 3.1
fr: B<nfsservctl>(2)	2.2	Retiré dans 3.1

note: type: tbl table
en: B<pciconfig_iobase>(2)	2.2.15; 2.4	Not on x86
fr: B<pciconfig_iobase>(2)	2.2.15; 2.4	Pas sur x86

note: Alpha, PowerPC, ARM; not x86 type: tbl table
en: B<pciconfig_read>(2)	2.0.26; 2.2	Not on x86
fr: B<pciconfig_read>(2)	2.0.26; 2.2	Pas sur x86

note: , PowerPC, ARM; not x86 type: tbl table
en: B<pciconfig_write>(2)	2.0.26; 2.2	Not on x86
fr: B<pciconfig_write>(2)	2.0.26; 2.2	Pas sur x86

note: type: tbl table
en: Was called perf_counter_open()
fr: Anc. perf_counter_open()

note: type: tbl table
en: in 2.6.31; renamed in 2.6.32
fr: en 2.6.31 ; renommé en 2.6.32

note: type: tbl table
en: B<perfctr>(2)	2.2	Sparc; removed in 2.6.34
fr: B<perfctr>(2)	2.2	Sparc ; retiré en 2.6.34

note: type: tbl table
en: B<ppc_rtas>(2)		PowerPC only
fr: B<ppc_rtas>(2)		PowerPC uniquement

note: type: tbl table
en: Added as "pread" in 2.2;
fr: « pread » ajouté en 2.2,

note: type: tbl table
en: renamed "pread64" in 2.6
fr: renommé « pread64 » en 2.6

note: type: tbl table
en: Added as "pwrite" in 2.2;
fr: « pwrite » ajouté en 2.2,

note: type: tbl table
en: renamed "pwrite64" in 2.6
fr: renommé « pwrite64 » en 2.6

note: type: tbl table
en: B<query_module>(2)	2.2	Removed in 2.6
fr: B<query_module>(2)	2.2	Retiré dans 2.6

note: type: tbl table
en: B<recv>(2)	2.0	See notes on B<socketcall>(2)
fr: B<recv>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<recvfrom>(2)	2.0	See notes on B<socketcall>(2)
fr: B<recvfrom>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<recvmsg>(2)	2.0	See notes on B<socketcall>(2)
fr: B<recvmsg>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<s390_runtime_instr>(2)	3.7	s390 only
fr: B<s390_runtime_instr>(2)	3.7	s390 uniquement

note: type: tbl table
en: B<semctl>(2)	2.0	See notes on B<ipc>(2)
fr: B<semctl>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<semget>(2)	2.0	See notes on B<ipc>(2)
fr: B<semget>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<semop>(2)	2.0	See notes on B<ipc>(2)
fr: B<semop>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<semtimedop>(2)	2.6; 2.4.22
fr: B<semtimedop>(2)	2.6 ; 2.4.22

note: type: tbl table
en: B<send>(2)	2.0	See notes on B<socketcall>(2)
fr: B<send>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<sendfile64>(2)	2.6; 2.4.19
fr: B<sendfile64>(2)	2.6 ; 2.4.19

note: type: tbl table
en: B<sendmsg>(2)	2.0	See notes on B<socketcall>(2)
fr: B<sendmsg>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<sendto>(2)	2.0	See notes on B<socketcall>(2)
fr: B<sendto>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<setsockopt>(2)	2.0	See notes on B<socketcall>(2)
fr: B<setsockopt>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<setup>(2)		Removed in 2.2
fr: B<setup>(2)		Retiré dans 2.2

note: type: tbl table
en: B<setxattr>(2)	2.6; 2.4.18
fr: B<setxattr>(2)	2.6 ; 2.4.18

note: type: tbl table
en: B<shmat>(2)	2.0	See notes on B<ipc>(2)
fr: B<shmat>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<shmctl>(2)	2.0	See notes on B<ipc>(2)
fr: B<shmctl>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<shmdt>(2)	2.0	See notes on B<ipc>(2)
fr: B<shmdt>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<shmget>(2)	2.0	See notes on B<ipc>(2)
fr: B<shmget>(2)	2.0	Voir notes de B<ipc>(2)

note: type: tbl table
en: B<shutdown>(2)	2.0	See notes on B<socketcall>(2)
fr: B<shutdown>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<socket>(2)	2.0	See notes on B<socketcall>(2)
fr: B<socket>(2)	2.0	Voir notes de B<socketcall>(2)

note: Implements BSD socket calls type: tbl table
en: B<socketpair>(2)	2.0	See notes on B<socketcall>(2)
fr: B<socketpair>(2)	2.0	Voir notes de B<socketcall>(2)

note: type: tbl table
en: B<spu_create>(2)	2.6.16	PowerPC only
fr: B<spu_create>(2)	2.6.16	PowerPC uniquement

note: type: tbl table
en: B<spu_run>(2)	2.6.16	PowerPC only
fr: B<spu_run>(2)	2.6.16	PowerPC uniquement

note: type: tbl table
en: B<subpage_prot>(2)	2.6.25	PowerPC if
fr: B<subpage_prot>(2)	2.6.25	PowerPC si

note: type: tbl table
en: Architecture-specific
fr: Comme B<sync_file_range>(2)

note: type: tbl table
en: variant of B<sync_file_range>(2)
fr: dépendant de l'architecture

note: type: tbl table
en: B<tkill>(2)	2.6; 2.4.22
fr: B<tkill>(2)	2.6 ; 2.4.22

note: type: tbl table
en: Was "vm86"; renamed in
fr: Précédemment « vm86 », renommé en

note: type: Plain text
en: On many platforms, including x86-32, socket calls are all multiplexed (via glibc wrapper functions) through B<socketcall>(2)  and similarly System V IPC calls are multiplexed through B<ipc>(2).
fr: Sur de nombreuses plates-formes, y compris les x86-32, les appels des sockets sont multiplexés (par des fonctions de la glibc) à travers B<socketcall>(2) et de même les IPC System V à l’aide d’B<ipc>(2).

note: __NR_afs_syscall is 53 on Linux 2.6.22/i386 __NR_break is 17 on Linux 2.6.22/i386 __NR_ftime is 35 on Linux 2.6.22/i386 __NR_getpmsg is 188 on Linux 2.6.22/i386 __NR_gtty is 32 on Linux 2.6.22/i386 __NR_idle is 112 on Linux 2.6.22/i386 __NR_lock is 53 on Linux 2.6.22/i386 __NR_madvise1 is 219 on Lin
en: Although slots are reserved for them in the system call table, the following system calls are not implemented in the standard kernel: B<afs_syscall>(2), B<break>(2), B<ftime>(2), B<getpmsg>(2), B<gtty>(2), B<idle>(2), B<lock>(2), B<madvise1>(2), B<mpx>(2), B<phys>(2), B<prof>(2), B<profil>(2), B<putpmsg>(2), B<security>(2), B<stty>(2), B<tuxcall>(2), B<ulimit>(2), and B<vserver>(2)  (see also B<unimplemented>(2)).  However, B<ftime>(3), B<profil>(3)  and B<ulimit>(3)  exist as library routines.  The slot for B<phys>(2)  is in use since kernel 2.1.116 for B<umount>(2); B<phys>(2)  will never be implemented.  The B<getpmsg>(2)  and B<putpmsg>(2)  calls are for kernels patched to support STREAMS, and may never be in the standard kernel.
fr: Même si des entrées ont été réservées dans la table des appels système, les appels système suivants ne sont pas implémentés : B<afs_syscall>(2), B<break>(2), B<ftime>(2), B<getpmsg>(2), B<gtty>(2), B<idle>(2), B<lock>(2), B<madvise1>(2), B<mpx>(2), B<phys>(2), B<prof>(2), B<profil>(2), B<putpmsg>(2), B<security>(2), B<stty>(2), B<tuxcall>(2), B<ulimit>(2) et B<vserver>(2) (voir aussi B<unimplemented>(2)). Toutefois, B<ftime>(3), B<profil>(3) et B<ulimit>(3) sont disponibles sous forme de fonctions de bibliothèque. L'entrée pour B<phys>(2) est utilisée pour B<umount>(2) depuis le 2.1.116, B<phys>(2) ne sera jamais implémenté. Les appels B<getpmsg>(2) et B<putpmsg>(2) sont pour les noyaux modifiés qui supportent les FLUX et ne seront peut-être jamais dans le noyau standard.

note: type: Plain text
en: There was briefly B<set_zone_reclaim>(2), added in Linux 2.6.13, and removed in 2.6.16; this system call was never available to user space.
fr: B<set_zone_reclaim>(2) a existé brièvement : ajouté dans Linux 2.6.13, et retiré en 2.6.16. Cet appel système n'a jamais été disponible dans l'espace utilisateur.

note: type: Plain text
en: Roughly speaking, the code belonging to the system call with number __NR_xxx defined in I</usr/include/asm/unistd.h> can be found in the Linux kernel source in the routine I<sys_xxx>().  (The dispatch table for i386 can be found in I</usr/src/linux/arch/i386/kernel/entry.S>.)  There are many exceptions, however, mostly because older system calls were superseded by newer ones, and this has been treated somewhat unsystematically.  On platforms with proprietary operating-system emulation, such as parisc, sparc, sparc64, and alpha, there are many additional system calls; mips64 also contains a full set of 32-bit system calls.
fr: En général, le code implémentant l'appel système ayant le numéro __NR_xxx dans le fichier I</usr/include/asm/unistd.h> se trouve dans la routine I<sys_xxx>() du noyau Linux. (La table de distribution pour la version i386 se trouve dans I</usr/src/linux/arch/i386/kernel/entry.S>.) Il y a néanmoins plusieurs exceptions, principalement lorsque d'anciens appels système ont été remplacés par des nouveaux. Ces cas n'ont pas été traités de manière homogène. Sur les plate-formes avec une émulation de système propriétaire, comme parisc, sparc, sparc64 et alpha, il existe de nombreux appels supplémentaires\ ; mips64 contient aussi un jeu complet d'appels système 32-bits.

note: type: Plain text
en: Over time, changes to the interfaces of some system calls have been necessary.  One reason for such changes was the need to increase the size of structures or scalar values passed to the system call.  Because of these changes, there are now various groups of related system calls (e.g., B<truncate>(2)  and B<truncate64>(2))  which perform similar tasks, but which vary in details such as the size of their arguments.  (As noted earlier, applications are generally unaware of this: the glibc wrapper functions do some work to ensure that the right system call is invoked, and that ABI compatibility is preserved for old binaries.)  Examples of systems calls that exist in multiple versions are the following:
fr: Avec le temps, des changements dans les interfaces de certains appels système ont été nécessaires. Une raison pour ces changements a été l'augmentation de la taille des structures ou des valeurs scalaires passées aux appels système. À cause de ces changements, il y a maintenant plusieurs implémentations de certains appels système (par exemple B<truncate>(2) et B<truncate64>(2)). Ces différentes versions ne sont pas compatibles au niveau binaire, mais les applications ne sont généralement pas impactées par ceci : la magie de la glibc fait en sorte que les binaires existants utilisent la version des appels système qui existaient au moment où le binaire a été créé. Ainsi la compatibilité de l'ABI est préservée. Voici des exemples d'appels système qui existent dans plusieurs versions :

note: e.g., on 2.6.22/i386: __NR_oldstat 18, __NR_stat 106, __NR_stat64 195 The stat system calls deal with three different data structures, defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64 type: Plain text
en: By now there are three different versions of B<stat>(2): I<sys_stat>()  (slot I<__NR_oldstat>), I<sys_newstat>()  (slot I<__NR_stat>), and I<sys_stat64>()  (slot I<__NR_stat64>), with the last being the most current.  A similar story applies for B<lstat>(2)  and B<fstat>(2).
fr: À ce jour, il y a trois versions de B<stat>(2) : I<sys_stat>() (entrée I<__NR_oldstat>), I<sys_newstat>() (entrée I<__NR_stat>) et I<sys_stat64>() (entrée I<__NR_stat64>), la dernière étant celle utilisée actuellement. La même histoire s'applique à B<lstat>(2) et B<fstat>(2).

note: type: Plain text
en: Similarly, the defines I<__NR_oldolduname>, I<__NR_olduname>, and I<__NR_uname> refer to the routines I<sys_olduname>(), I<sys_uname>()  and I<sys_newuname>().
fr: De même, les définitions I<__NR_oldolduname>, I<__NR_olduname> et I<__NR_uname> concernent les routines I<sys_olduname>(), I<sys_uname>() et I<sys_newuname>().

note: type: Plain text
en: In Linux 2.0, a new version of B<vm86>(2)  appeared, with the old and the new kernel routines being named I<sys_vm86old>()  and I<sys_vm86>().
fr: Dans Linux 2.0, une nouvelle version de B<vm86>(2) est apparue, l'ancienne et la nouvelle routine du noyau étant appelées I<sys_vm86old>() et I<sys_vm86>().

note: type: Plain text
en: In Linux 2.4, a new version of B<getrlimit>(2)  appeared, with the old and the new kernel routines being named I<sys_old_getrlimit>()  (slot I<__NR_getrlimit>)  and I<sys_getrlimit>()  (slot I<__NR_ugetrlimit>).
fr: Dans Linux 2.4, une nouvelle version de B<getrlimit>(2) est apparue, l'ancienne et la nouvelle routine du noyau étant appelées I<sys_old_getrlimit>() (entrée I<__NR_getrlimit>) et I<sys_getrlimit>() (entrée I<__NR_ugetrlimit>).

note: 64-bit off_t changes: ftruncate64, *stat64, fcntl64 (because of the flock structure), getdents64, *statfs64 type: Plain text
en: Linux 2.4 increased the size of user and group IDs from 16 to 32 bits.  To support this change, a range of system calls were added (e.g., B<chown32>(2), B<getuid32>(2), B<getgroups32>(2), B<setresuid32>(2)), superseding earlier calls of the same name without the "32" suffix.
fr: Linux 2.4 a augmenté la taille des identifiants d'utilisateur et de groupe de 16 bits à 32 bits. Pour permettre ce changement, un jeu d'appels système ont été ajoutés (par exemple, B<chown32>(2), B<getuid32>(2), B<getgroups32>(2), B<setresuid32>(2)), surchargeant les précédents appels système du même nom sans le suffixe « 32 ».

note: type: Plain text
en: Linux 2.4 added support for applications on 32-bit architectures to access large files (i.e., files for which the sizes and file offsets can't be represented in 32 bits.)  To support this change, replacements were required for system calls that deal with file offsets and sizes.  Thus the following system calls were added: B<fcntl64>(2), B<ftruncate64>(2), B<getdents64>(2), B<stat64>(2), B<statfs64>(2), and their analogs that work with file descriptors or symbolic links.  These system calls supersede the older system calls which, except in the case of the "stat" calls, have the same name without the "64" suffix.
fr: Linux 2.4 a ajouté la gestion des gros fichiers pour les applications sur architecture 32 bits (c'est-à-dire la gestion des fichiers dont la taille et les décalages dans le fichier ne peuvent pas être représentés sur des 32 bits). Pour gérer ce changement, des appels système, qui utilisent des déplacements dans des fichiers ou des tailles de fichiers, ont dû être remplacés. Ainsi, les appels système suivants ont été ajoutés : B<fcntl64>(2), B<ftruncate64>(2), B<getdents64>(2), B<stat64>(2), B<statfs64>(2) et les appels système analogues qui fonctionnent avec des descripteurs de fichier ou des liens symboliques. Ces appels système remplacent les anciens appels système qui, sauf pour les appels « stats », ont le même nom sans le suffixe « 64 ».

note: type: Plain text
en: On newer platforms that only have 64-bit file access and 32-bit uids (e.g., alpha, ia64, s390x) there are no *64 or *32 calls.  Where the *64 and *32 calls exist, the other versions are obsolete.
fr: Sur les plates-formes récentes qui n'ont que des accès aux fichiers 64-bits et des UID 32-bits (ex. alpha, ia64, s390x) il n'y a pas d'appel *64 ou *32. Quand les appels *64 et *32 existent, les autres versions sont obsolètes.

note: type: Plain text
en: The I<rt_sig*> calls were added in kernel 2.2 to support the addition of real-time signals (see B<signal>(7)).  These system calls supersede the older system calls of the same name without the "rt_" prefix.
fr: Les appels I<rt_sig*> ont été ajoutés dans le noyau 2.2 pour gérer l'ajout des signaux temps-réel (consultez B<signal>(7)). Ces appels système remplacent les appels précédents du même nom sans le préfixe « rt_ ».

note: (used by libc 6) .PP Two system call numbers, .IR __NR__llseek and .IR __NR__sysctl have an additional underscore absent in .IR sys_llseek () .IR sys_sysctl (). In kernel 2.1.81, .BR lchown (2) .BR chown (2) were swapped; that is, was added with the semantics that were then current for .BR chown (2)
en: The B<select>(2)  and B<mmap>(2)  system calls use five or more arguments, which caused problems in the way argument passing on the i386 used to be set up.  Thus, while other architectures have I<sys_select>()  and I<sys_mmap>()  corresponding to I<__NR_select> and I<__NR_mmap>, on i386 one finds I<old_select>()  and I<old_mmap>()  (routines that use a pointer to a argument block) instead.  These days passing five arguments is not a problem any more, and there is a I<__NR__newselect> that corresponds directly to I<sys_select>()  and similarly I<__NR_mmap2>.
fr: Les appels système B<select>(2) et B<mmap>(2) utilisent 5 paramètres ou plus, ce qui a posé des problèmes avec les méthodes classiques de passage de paramètres sur i386. Ainsi, alors que les autres architectures disposent de I<sys_select>() et I<sys_mmap>() correspondant à I<__NR_select> et I<__NR_mmap>, on trouve sur les i386 I<old_select>() et I<old_mmap>() à leur place. Ce sont des routines utilisant un pointeur sur un bloc de paramètres. De nos jours, passer 5 paramètres n'est plus un problème, et il existe donc un I<__NR__newselect> correspondant directement à I<sys_select>() ; il en est de même pour I<__NR_mmap2>.

note: type: Plain text
en: sysconf - get configuration information at run time
fr: sysconf - Obtenir des informations de configuration au moment de l'exécution

note: type: Plain text
en: POSIX allows an application to test at compile or run time whether certain options are supported, or what the value is of certain configurable constants or limits.
fr: POSIX permet à une application de tester à la compilation ou à l'exécution si certaines options sont gérées ou de déterminer quelles sont les valeurs de certaines limites ou constantes configurables.

note: type: Plain text
en: At compile time this is done by including I<E<lt>unistd.hE<gt>> and/or I<E<lt>limits.hE<gt>> and testing the value of certain macros.
fr: Ceci est fait à la compilation en incluant I<E<lt>unistd.hE<gt>> et/ou I<E<lt>limits.hE<gt>> et en testant la valeur de certaines macros.

note: type: Plain text
en: At run time, one can ask for numerical values using the present function B<sysconf>().  One can ask for numerical values that may depend on the filesystem a file is in using the calls B<fpathconf>(3)  and B<pathconf>(3).  One can ask for string values using B<confstr>(3).
fr: Pendant l'exécution, vous pouvez obtenir les valeurs numériques en utilisant la fonction B<sysconf>(). Vous pouvez obtenir les valeurs numériques, qui peuvent dépendre du système de fichiers, relatives à un fichier en utilisant les appels B<fpathconf>(3) et B<pathconf>(3). Vous pouvez obtenir les valeurs de chaînes en utilisant B<confstr>(3).

note: except that sysconf(_SC_OPEN_MAX) may change answer after a call to setrlimit( ) which changes the RLIMIT_NOFILE soft limit type: Plain text
en: The values obtained from these functions are system configuration constants.  They do not change during the lifetime of a process.
fr: Les valeurs obtenues à partir de ces fonctions sont des constantes de configuration du système. Elles ne seront donc pas modifiées pendant la durée de vie d'un processus.

note: and 999 to indicate support for options no longer present in the latest standard. (?) type: Plain text
en: For options, typically, there is a constant B<_POSIX_FOO> that may be defined in I<E<lt>unistd.hE<gt>>.  If it is undefined, one should ask at run time.  If it is defined to -1, then the option is not supported.  If it is defined to 0, then relevant functions and headers exist, but one has to ask at run time what degree of support is available.  If it is defined to a value other than -1 or 0, then the option is supported.  Usually the value (such as 200112L) indicates the year and month of the POSIX revision describing the option.  Glibc uses the value 1 to indicate support as long as the POSIX revision has not been published yet.  The B<sysconf>()  argument will be B<_SC_FOO>.  For a list of options, see B<posixoptions>(7).
fr: Pour les options, il y a typiquement une constante symbolique B<_POSIX_FOO> qui peut être définie dans I<E<lt>unistd.hE<gt>>. Si elle n'est pas définie, vous pouvez poser la question à l'exécution. Si elle est définie à -1, c'est que l'option n'est pas supportée. Si elle est définie à 0, les en-têtes et les fonctions en rapport existent mais vous devrez demander pendant l'exécution quel degré de prise en charge est disponible. Si elle est définie à une autre valeur que -1 ou 0, l'option est supportée. Habituellement, la valeur (comme par exemple 200112L) indique l'année et le mois de la révision POSIX qui décrit l'option. Glibc utilise la valeur 1 pour indiquer le support aussi longtemps que la révision POSIX n'a pas été publiée. L'argument de B<sysconf>() sera B<_SC_FOO>. Pour la liste des options, consultez B<posixoptions>(7).

note: type: Plain text
en: For variables or limits, typically, there is a constant B<_FOO>, maybe defined in I<E<lt>limits.hE<gt>>, or B<_POSIX_FOO>, maybe defined in I<E<lt>unistd.hE<gt>>.  The constant will not be defined if the limit is unspecified.  If the constant is defined, it gives a guaranteed value, and a greater value might actually be supported.  If an application wants to take advantage of values which may change between systems, a call to B<sysconf>()  can be made.  The B<sysconf>()  argument will be B<_SC_FOO>.
fr: Pour les variables ou les limites, il s'agit typiquement d'une constante B<_FOO>, pouvant être définie dans I<E<lt>limits.hE<gt>>, ou B<_POSIX_FOO>, pouvant être définie dans I<E<lt>unistd.hE<gt>>. La constante ne sera pas définie si la limite n'est pas indiquée. Si la constante est définie, cela donne une valeur garantie et une valeur plus grande pourrait être supportée. Si une application veut tirer parti des valeurs pouvant varier entre les systèmes, l'appel de B<sysconf>() permet d'obtenir ces informations. L'argument de B<sysconf>() sera B<_SC_FOO>.

note: type: SS
en: POSIX.1 variables
fr: Variables POSIX.1

note: type: Plain text
en: We give the name of the variable, the name of the B<sysconf>()  argument used to inquire about its value, and a short description.
fr: Nous allons donner le nom de la variable, le nom du paramètre passé à B<sysconf>() pour s'enquérir de sa valeur et une brève description.

note: [for the moment: only the things that are unconditionally present] .TP .BR AIO_LISTIO_MAX " - " _SC_AIO_LISTIO_MAX (if _POSIX_ASYNCHRONOUS_IO) Maximum number of I/O operations in a single list I/O call. Must not be less than _POSIX_AIO_LISTIO_MAX. .BR AIO_MAX " - " _SC_AIO_MAX Maximum number of outs
en: First, the POSIX.1 compatible values.
fr: Tout d'abord, les valeurs compatibles POSIX.1.

note: type: Plain text
en: The maximum length of the arguments to the B<exec>(3)  family of functions.  Must not be less than B<_POSIX_ARG_MAX> (4096).
fr: La longueur maximale des arguments des fonctions de la famille B<exec>(3). Ne doit pas être inférieure à B<_POSIX_ARG_MAX> (4096).

note: type: Plain text
en: The maximum number of simultaneous processes per user ID.  Must not be less than B<_POSIX_CHILD_MAX> (25).
fr: Le nombre maximal de processus simultanés pour un UID. Ne doit pas être moins que B<_POSIX_CHILD_MAX> (25).

note: type: Plain text
en: Maximum length of a hostname, not including the terminating null byte, as returned by B<gethostname>(2).  Must not be less than B<_POSIX_HOST_NAME_MAX> (255).
fr: La longueur maximale d'un nom d'hôte, sans inclure le caractère nul final, tel qu'il est retourné par B<gethostname>(2). Ne doit pas être inférieure à B<_POSIX_HOST_NAME_MAX> (255).

note: type: Plain text
en: Maximum length of a login name, including the terminating null byte.  Must not be less than B<_POSIX_LOGIN_NAME_MAX> (9).
fr: La longueur maximale d'un nom de connexion (login), incluant le caractère nul final. Ne doit pas être inférieure à B<_POSIX_LOGIN_NAME_MAX> (9).

note: type: TP
en: clock ticks - B<_SC_CLK_TCK>
fr: tops d'horloge - B<_SC_CLK_TCK>

note: type: Plain text
en: The number of clock ticks per second.  The corresponding variable is obsolete.  It was of course called B<CLK_TCK>.  (Note: the macro B<CLOCKS_PER_SEC> does not give information: it must equal 1000000.)
fr: Le nombre de tops d'horloge par seconde. La macro correspondante est obsolète. Il s'agit bien sûr de B<CLK_TCK> (veuillez noter que la macro B<CLOCKS_PER_SEC> ne donne pas d'information\ : elle doit être égale à 1000000).

note: type: Plain text
en: The maximum number of files that a process can have open at any time.  Must not be less than B<_POSIX_OPEN_MAX> (20).
fr: Le nombre maximal de fichiers qu'un processus peut ouvrir simultanément. Ne doit pas être moins que B<_POSIX_OPEN_MAX> (20).

note: type: Plain text
en: Size of a page in bytes.  Must not be less than 1.  (Some systems use PAGE_SIZE instead.)
fr: Taille d'une page en octets. Ne doit pas être inférieure à 1 (certains systèmes utilisent PAGE_SIZE à la place).

note: type: Plain text
en: The number of repeated occurrences of a BRE permitted by B<regexec>(3)  and B<regcomp>(3).  Must not be less than B<_POSIX2_RE_DUP_MAX> (255).
fr: Le nombre maximal de répétitions d'une expression rationelle permises par B<regexec>(3) et B<regcomp>(3). Ne doit pas être inférieur à B<_POSIX2_RE_DUP_MAX> (255).

note: type: Plain text
en: The maximum number of streams that a process can have open at any time.  If defined, it has the same value as the standard C macro B<FOPEN_MAX>.  Must not be less than B<_POSIX_STREAM_MAX> (8).
fr: Le nombre maximal de flux qu'un processus peut ouvrir simultanément. Si elle est définie, elle a la même valeur que la macro C standard B<FOPEN_MAX>. Ne doit pas être moins que B<_POSIX_STREAM_MAX> (8).

note: type: Plain text
en: The maximum number of symbolic links seen in a pathname before resolution returns B<ELOOP>.  Must not be less than B<_POSIX_SYMLOOP_MAX> (8).
fr: Le nombre maximal de liens symboliques rencontrés dans le nom d'un chemin avant que la résolution ne retourne B<ELOOP>. Ne doit pas être inférieur à B<_POSIX_SYMLOOP_MAX> (8).

note: type: Plain text
en: The maximum length of terminal device name, including the terminating null byte.  Must not be less than B<_POSIX_TTY_NAME_MAX> (9).
fr: La longueur maximale du nom d'un périphérique terminal, incluant le NUL final. Ne doit pas être inférieure à B<_POSIX_TTY_NAME_MAX> (9).

note: type: Plain text
en: The maximum number of bytes in a timezone name.  Must not be less than B<_POSIX_TZNAME_MAX> (6).
fr: Le nombre maximal de caractères dans le nom d'un fuseau horaire. Ne doit pas être moins que B<_POSIX_TZNAME_MAX> (6).

note: type: Plain text
en: indicates the year and month the POSIX.1 standard was approved in the format B<YYYYMML>; the value B<199009L> indicates the Sept. 1990 revision.
fr: Indique l'année et le mois où la norme POSIX.1 a été approuvé, en utilisant le format B<AAAAMML>. La valeur B<199009L> correspond à la révision de septembre 1990.

note: type: SS
en: POSIX.2 variables
fr: Variables POSIX.2

note: type: Plain text
en: Next, the POSIX.2 values, giving limits for utilities.
fr: Ensuite, les constantes POSIX.2 donnant les limites pour les utilitaires.

note: type: Plain text
en: indicates the maximum I<obase> value accepted by the B<bc>(1)  utility.
fr: La valeur maximale pour I<obase> acceptée par l'utilitaire B<bc>(1).

note: type: Plain text
en: indicates the maximum value of elements permitted in an array by B<bc>(1).
fr: La valeur maximale des éléments autorisés dans une table par B<bc>(1).

note: type: Plain text
en: indicates the maximum I<scale> value allowed by B<bc>(1).
fr: La valeur maximale pour I<scale> autorisée par B<bc>(1).

note: type: Plain text
en: indicates the maximum length of a string accepted by B<bc>(1).
fr: La longueur maximale d'une chaîne acceptée par B<bc>(1).

note: type: Plain text
en: indicates the maximum numbers of weights that can be assigned to an entry of the B<LC_COLLATE order> keyword in the locale definition file,
fr: Le nombre maximal de poids à affecter à une entrée dans l'ordre B<LC_COLLATE> du fichier de définition de localisation.

note: type: Plain text
en: is the maximum number of expressions which can be nested within parentheses by B<expr>(1).
fr: Le nombre maximal d'expressions imbriquées entre parenthèses dans B<expr>(1).

note: type: Plain text
en: The maximum length of a utility's input line, either from standard input or from a file.  This includes space for a trailing newline.
fr: La longueur maximale d'une ligne d'entrée d'un utilitaire, aussi bien depuis l'entrée standard que depuis un fichier. Cette longueur comprend l'emplacement du caractère final «\ nouvelle ligne\ ».

note: type: Plain text
en: The maximum number of repeated occurrences of a regular expression when the interval notation B<\e{m,n\e}> is used.
fr: Le nombre maximal de répétitions d'une expression rationnelle quand la notation d'intervalle B<\e{m,n\e}> est utilisée.

note: type: Plain text
en: indicates the version of the POSIX.2 standard in the format of YYYYMML.
fr: La version de la norme POSIX.2 au format AAAAMML.

note: type: Plain text
en: indicates whether the POSIX.2 C language development facilities are supported.
fr: Indique si les utilitaires POSIX.2 de développement en C sont supportés.

note: type: Plain text
en: indicates whether the POSIX.2 FORTRAN development utilities are supported.
fr: Indique si les utilitaires POSIX.2 de développement en FORTRAN sont supportés.

note: type: Plain text
en: indicates whether the POSIX.2 FORTRAN run-time utilities are supported.
fr: Indique si les utilitaires POSIX.2 d'exécution FORTRAN sont prises en charge.

note: type: Plain text
en: indicates whether the POSIX.2 creation of locates via B<localedef>(1)  is supported.
fr: Indique si la création de localisation POSIX.2 avec B<localedef>(1) est supportée.

note: type: Plain text
en: indicates whether the POSIX.2 software development utilities option is supported.
fr: Indique si les utilitaires POSIX.2 de développement sont supportés.

note: type: Plain text
en: These values also exist, but may not be standard.
fr: Quelques valeurs existent sans appartenir à une norme\ :

note: type: Plain text
en: The number of pages of physical memory.  Note that it is possible for the product of this value and the value of B<_SC_PAGESIZE> to overflow.
fr: Le nombre de pages de mémoire physique. Notez qu'il est possible que le produit de cette valeur et de la valeur B<_SC_PAGE_SIZE> déclenche un débordement.

note: type: Plain text
en: The number of currently available pages of physical memory.
fr: Le nombre de pages de mémoire physique actuellement disponibles.

note: type: Plain text
en: The number of processors configured.
fr: Le nombre de processeurs configurés.

note: type: Plain text
en: The number of processors currently online (available).
fr: Le nombre de processeurs actuellement en ligne (disponibles).

note: type: Plain text
en: If I<name> is invalid, -1 is returned, and I<errno> is set to B<EINVAL>.  Otherwise, the value returned is the value of the system resource and I<errno> is not changed.  In the case of options, a positive value is returned if a queried option is available, and -1 if it is not.  In the case of limits, -1 means that there is no definite limit.
fr: Si I<name> est invalide, -1 est renvoyée et I<errno> est mis à B<EINVAL>. Sinon, la valeur renvoyée est celle de la ressource système correspondante et I<errno> n'est pas modifiée. Dans le cas d'options, une valeur positive est renvoyée si l'option requise est disponible et -1 si elle ne l'est pas. Dans le cas de limites, -1 signifie qu'aucune limite n'est définie.

note: type: Plain text
en: It is difficult to use B<ARG_MAX> because it is not specified how much of the argument space for B<exec>(3)  is consumed by the user's environment variables.
fr: Il est difficile d'utiliser B<ARG_MAX> car il n'est pas précisé combien d'espace d'argument de B<exec>(3) est utilisé par les variables d'environnement de l'utilisateur.

note: type: TH
en: 2012-12-22
fr: 22 décembre 2012

note: type: Plain text
en: sysctl - read/write system parameters
fr: sysctl - Lire/écrire les paramètres système

note: type: Plain text
en: B<Do not use this system call!> See NOTES.
fr: B<N'utilisez pas cet appel système !> Consultez la section NOTES.

note: type: Plain text
en: The B<_sysctl>()  call reads and/or writes kernel parameters.  For example, the hostname, or the maximum number of open files.  The argument has the form
fr: L'appel système B<_sysctl>() lit et/ou écrit les paramètres du noyau. Par exemple, le nom d'hôte ou le nombre maximal de fichiers ouverts. L'argument a la forme

note: type: Plain text
en: struct __sysctl_args {
        int    *name;    /* integer vector describing variable */
        int     nlen;    /* length of this vector */
        void   *oldval;  /* 0 or address where to store old value */
        size_t *oldlenp; /* available room for old value,
                            overwritten by actual size of old value */
        void   *newval;  /* 0 or address of new value */
        size_t  newlen;  /* size of new value */
    };
fr: struct __sysctl_args {
        int    *name;    /* tableau d'entiers décrivant la variable */
        int     nlen;    /* longueur de ce tableau */
        void   *oldval;  /* 0 ou adresse où stocker l'ancienne valeur */
        size_t *oldlenp; /* espace disponible pour l'ancienne valeur,
                            remplacé par la taille réelle de cette valeur */
        void   *newval;  /* 0 ou adresse de la nouvelle valeur */
        size_t  newlen;  /* taille de la nouvelle valeur */
    };

note: type: Plain text
en: This call does a search in a tree structure, possibly resembling a directory tree under I</proc/sys>, and if the requested item is found calls some appropriate routine to read or modify the value.
fr: Cet appel effectue une recherche dans la structure arborescente regroupée sous le répertoire I</proc/sys>, puis, si les valeurs réclamées y sont trouvées, appelle les routines appropriées pour lire ou modifier les valeurs.

note: type: Plain text
en: Upon successful completion, B<_sysctl>()  returns 0.  Otherwise, a value of -1 is returned and I<errno> is set to indicate the error.
fr: B<_sysctl>() renvoie 0 s'il réussit, et -1 s'il échoue auquel cas I<errno> contient le code d'erreur.

note: type: Plain text
en: The invocation asked for the previous value by setting I<oldval> non-NULL, but allowed zero room in I<oldlenp>.
fr: Demande de lecture de la valeur précédente en fournissant I<oldval> non NULL, mais pas de place disponible dans I<oldlenp>.

note: type: Plain text
en: I<name> was not found.
fr: I<name> non trouvé.

note: type: Plain text
en: No search permission for one of the encountered "directories", or no read permission where I<oldval> was nonzero, or no write permission where I<newval> was nonzero.
fr: Pas de droits de parcours sur l'un des «\ répertoires\ » rencontrés, ou pas de permission de lecture avec I<oldval> non nul, ou encore pas de permission d'écriture avec I<newval> non nul.

note: type: Plain text
en: This call is Linux-specific, and should not be used in programs intended to be portable.  A B<sysctl>()  call has been present in Linux since version 1.3.57.  It originated in 4.4BSD.  Only Linux has the I</proc/sys> mirror, and the object naming schemes differ between Linux and 4.4BSD, but the declaration of the B<sysctl>()  function is the same in both.
fr: Cet appel système est spécifique à Linux et ne devrait pas être employé dans les programmes destinés à être portables. Un appel B<sysctl>() est présent dans Linux depuis la version 1.3.57. Il existait dans BSD\ 4.4. Seul Linux dispose du miroir I</proc/sys> et les conventions de noms d'objets diffèrent entre Linux et BSD\ 4.4, mais les déclarations de la fonction B<sysctl>() sont identiques sur les deux systèmes.

note: See http://lwn.net/Articles/247243/ Though comments in suggest that it is needed by old glibc binaries, so maybe it's not going away. type: Plain text
en: Glibc does not provide a wrapper for this system call; call it using B<syscall>(2).  Or rather...  I<don't> call it: use of this system call has long been discouraged, and it is so unloved that B<it is likely to disappear in a future kernel version>.  Since Linux 2.6.24, uses of this system call result in warnings in the kernel log.  Remove it from your programs now; use the I</proc/sys> interface instead.
fr: La glibc ne fournit pas de fonction autour de cet appel système ; appelez-le "avec B<syscall>(2). Ou plutôt… ne l'appelez I<pas> : l'utilisation de cet appel système est déconseillée depuis bien longtemps, et il est tellement indésirable qu'I<il disparaitra bientôt dans une prochaine version du noyau>. Depuis Linux 2.6.24, les utilisations de cet appel système provoquent des avertissements dans le journal du noyau. Supprimez-le dès à présent de vos programmes ; utilisez l'interface I</proc/sys> à la place.

note: type: Plain text
en: This system call is available only if the kernel was configured with the B<CONFIG_SYSCTL_SYSCALL> option.
fr: Cet appel système n'est disponible que si le noyau a été configuré avec l'option B<CONFIG_SYSCTL_SYSCALL>.

note: type: Plain text
en: The object names vary between kernel versions, making this system call worthless for applications.
fr: Les noms des objets peuvent varier d'une version à l'autre du noyau, ce qui rend cet appel système sans intérêt pour les applications.

note: type: Plain text
en: Not all available objects are properly documented.
fr: Tous les objets disponibles ne sont pas correctement documentés.

note: type: Plain text
en: It is not yet possible to change operating system by writing to I</proc/sys/kernel/ostype>.
fr: Il n'est pas possible de changer de système d'exploitation en écrivant dans I</proc/sys/kernel/ostype>.

note: type: Plain text
en:     if (syscall(SYS__sysctl, &args) == -1) {
            perror("_sysctl");
            exit(EXIT_FAILURE);
        }
        printf("This machine is running %*s\en", osnamelth, osname);
        exit(EXIT_SUCCESS);
    }
fr: int
    main(void)
    {
        if (syscall(SYS__sysctl, &args) == -1) {
            perror("sysctl");
            exit(EXIT_FAILURE);
        }
        printf("Cette machine fonctionne avec %*s\en", osnamelth, osname);
        exit(EXIT_SUCCESS);
    }

note: type: TH
en: 2012-05-05
fr: 5 mai 2012

note: type: Plain text
en: sysinfo - returns information on overall system statistics
fr: sysinfo - Obtenir des informations statistiques sur le système

note: type: Plain text
en: Until Linux 2.3.16, B<sysinfo>()  used to return information in the following structure:
fr: Jusqu'au noyau 2.3.16, B<sysinfo>() renvoyait les informations dans la structure suivante\ :

note: type: Plain text
en: struct sysinfo {
        long uptime;             /* Seconds since boot */
        unsigned long loads[3];  /* 1, 5, and 15 minute load averages */
        unsigned long totalram;  /* Total usable main memory size */
        unsigned long freeram;   /* Available memory size */
        unsigned long sharedram; /* Amount of shared memory */
        unsigned long bufferram; /* Memory used by buffers */
        unsigned long totalswap; /* Total swap space size */
        unsigned long freeswap;  /* swap space still available */
        unsigned short procs;    /* Number of current processes */
        char _f[22];             /* Pads structure to 64 bytes */
    };
fr: struct sysinfo {
        long uptime;             /* Secondes écoulées depuis le boot.*/
        unsigned long loads[3];  /* Charges depuis 1, 5, et 15 mn.   */
        unsigned long totalram;  /* Mémoire totale du système.       */
        unsigned long freeram;   /* Mémoire disponible.              */
        unsigned long sharedram; /* Mémoire partagée.                */
        unsigned long bufferram; /* Mémoire utilisée par les tampons */
        unsigned long totalswap; /* Taille totale du swap.           */
        unsigned long freeswap;  /* Espace disponible dans le swap.  */
        unsigned short procs;    /* Nombre de processus actuels.     */
        char _f[22];             /* Remplissage jusqu'à 64 octets.   */
    };

note: type: Plain text
en: and the sizes were given in bytes.
fr: et les tailles étaient indiquées en octets.

note: type: Plain text
en: Since Linux 2.3.23 (i386), 2.3.48 (all architectures) the structure is:
fr: Depuis le noyau 2.3.23 (i386) et 2.3.48 (toutes architectures), la structure est devenue\ :

note: type: Plain text
en: struct sysinfo {
        long uptime;             /* Seconds since boot */
        unsigned long loads[3];  /* 1, 5, and 15 minute load averages */
        unsigned long totalram;  /* Total usable main memory size */
        unsigned long freeram;   /* Available memory size */
        unsigned long sharedram; /* Amount of shared memory */
        unsigned long bufferram; /* Memory used by buffers */
        unsigned long totalswap; /* Total swap space size */
        unsigned long freeswap;  /* swap space still available */
        unsigned short procs;    /* Number of current processes */
        unsigned long totalhigh; /* Total high memory size */
        unsigned long freehigh;  /* Available high memory size */
        unsigned int mem_unit;   /* Memory unit size in bytes */
        char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding to 64 bytes */
    };
fr: struct sysinfo {
        long uptime;             /* Secondes écoulées depuis le boot.  */
        unsigned long loads[3];  /* Charges depuis 1, 5, et 15 mn.     */
        unsigned long totalram;  /* Mémoire totale du système.         */
        unsigned long freeram;   /* Mémoire disponible.                */
        unsigned long sharedram; /* Mémoire partagée.                  */
        unsigned long bufferram; /* Mémoire utilisée par les tampons   */
        unsigned long totalswap; /* Taille totale du swap.             */
        unsigned long freeswap;  /* Espace disponible dans le swap.    */
        unsigned short procs;    /* Nombre de processus actuel.        */
        unsigned long totalhigh; /* Taille totale mémoire haute.       */
        unsigned long freehigh;  /* Taille mémoire haute libre.        */
        usigned int mem_unit;    /* Taille de bloc mémoire en octets   */
        char _f[20-2*sizeof(long)-sizeof(int)];  /* remplissage à 64 octets */
    };

note: type: Plain text
en: and the sizes are given as multiples of I<mem_unit> bytes.
fr: et les tailles sont indiquées sous forme de multiples de I<mem_unit> octets.

note: type: Plain text
en: B<sysinfo>()  provides a simple way of getting overall system statistics.  This is more portable than reading I</dev/kmem>.
fr: B<sysinfo>() permet d'obtenir facilement des statistiques systèmes. C'est plus portable que la lecture de I</dev/kmem>.

note: type: Plain text
en: pointer to I<struct\ sysinfo> is invalid
fr: Le pointeur vers I<struct\ sysinfo> n'est pas valable

note: type: Plain text
en: The Linux kernel has a B<sysinfo>()  system call since 0.98.pl6.  Linux libc contains a B<sysinfo>()  routine since 5.3.5, and glibc has one since 1.90.
fr: Le noyau Linux dispose d'un appel système B<sysinfo>() depuis la version 0.98pl6. La bibliothèque libc de Linux contient une routine B<sysinfo>() depuis la version 5.3.5, et la bibliothèque glibc depuis 1.90.

note: type: TH
en: 2014-01-13
fr: 13 janvier 2014

note: type: Plain text
en: tcgetpgrp, tcsetpgrp - get and set terminal foreground process group
fr: tcgetpgrp, tcsetpgrp - Lire/écrire le processus de premier plan d'un terminal

note: The process itself may be a background process. type: Plain text
en: The function B<tcgetpgrp>()  returns the process group ID of the foreground process group on the terminal associated to I<fd>, which must be the controlling terminal of the calling process.
fr: La fonction B<tcgetpgrp>() renvoie l'ID du groupe de processus au premier plan sur le terminal associé I<fd>, qui doit être le terminal de contrôle du processus appelant.

note: type: Plain text
en: The function B<tcsetpgrp>()  makes the process group with process group ID I<pgrp> the foreground process group on the terminal associated to I<fd>, which must be the controlling terminal of the calling process, and still be associated with its session.  Moreover, I<pgrp> must be a (nonempty) process group belonging to the same session as the calling process.
fr: La fonction B<tcsetpgrp>() fait du groupe de processus I<pgrp> le groupe au premier plan sur le terminal associé à I<fd>, qui doit être le terminal de contrôle du processus appelant, et être toujours associé à sa session. En outre, I<pgrp> doit être un groupe (non vide) de processus appartenant à la même session que le processus appelant.

note: type: Plain text
en: If B<tcsetpgrp>()  is called by a member of a background process group in its session, and the calling process is not blocking or ignoring B<SIGTTOU>, a B<SIGTTOU> signal is sent to all members of this background process group.
fr: Si B<tcsetpgrp>() est appelé par un membre d'un groupe de processus en arrière-plan dans sa session, et si le processus appelant ne bloque ni n'ignore B<SIGTTOU>, un signal B<SIGTTOU> est envoyé à tous les membres du groupe en arrière-plan.

note: type: Plain text
en: When I<fd> refers to the controlling terminal of the calling process, the function B<tcgetpgrp>()  will return the foreground process group ID of that terminal if there is one, and some value larger than 1 that is not presently a process group ID otherwise.  When I<fd> does not refer to the controlling terminal of the calling process, -1 is returned, and I<errno> is set appropriately.
fr: Quand I<fd> identifie le terminal de contrôle du processus appelant, la fonction B<tcgetpgrp>() renverra l'ID du groupe de processus au premier plan sur ce terminal s'il existe, sinon il renvoie une valeur supérieure à 1, différente d'un ID de groupe de processus existant. Si I<fd> ne correspond pas au terminal de contrôle du processus, -1 est renvoyé et I<errno> est positionnée en conséquence.

note: type: Plain text
en: When successful, B<tcsetpgrp>()  returns 0.  Otherwise, it returns -1, and I<errno> is set appropriately.
fr: Lorsqu'elle réussit, la fonction B<tcsetpgrp>() renvoie 0. Sinon, elle renvoie -1, et remplit I<errno> avec le code d'erreur.

note: type: Plain text
en: I<pgrp> has an unsupported value.
fr: I<pgrp> a une valeur illégale.

note: type: Plain text
en: The calling process does not have a controlling terminal, or it has one but it is not described by I<fd>, or, for B<tcsetpgrp>(), this controlling terminal is no longer associated with the session of the calling process.
fr: Le processus appelant n'a pas de terminal de contrôle, ou il en a un mais ce n'est pas celui décrit par I<fd>, ou, pour B<tcsetpgrp>(), ce terminal de contrôle n'est plus associé avec la session du processus appelant.

note: type: Plain text
en: I<pgrp> has a supported value, but is not the process group ID of a process in the same session as the calling process.
fr: I<pgrp> a une valeur légale, mais ce n'est pas l'ID d'un groupe de processus dans la même session que le processus appelant.

note: type: Plain text
en: The B<tcgetpgrp>()  and B<tcsetpgrp>()  functions are thread-safe.
fr: Les fonctions B<tcgetpgrp>() et B<tcsetpgrp>() sont sûres dans un contexte multithread.

note: type: Plain text
en: These functions are implemented via the B<TIOCGPGRP> and B<TIOCSPGRP> ioctls.
fr: Ces fonctions sont implémentées à l’aide des ioctls B<TIOCGPGRP> et B<TIOCSPGRP>.

note: type: SS
en: History
fr: Historique

note: type: Plain text
en: The ioctls appeared in 4.2BSD.  The functions are POSIX inventions.
fr: Les ioctls sont apparus dans BSD\ 4.2. Ces fonctions sont des inventions POSIX.

note: type: TH
en: 2013-04-01
fr: 1er avril 2013

note: type: Plain text
en: truncate, ftruncate - truncate a file to a specified length
fr: truncate, ftruncate - Tronquer un fichier à une longueur donnée

note: type: Plain text
en: B<truncate>():
fr: B<truncate>() :

note: type: Plain text
en: B<ftruncate>():
fr: B<ftruncate>()\ :

note: type: Plain text
en: || /* Since glibc 2.3.5: */ _POSIX_C_SOURCE\ E<gt>=\ 200112L
fr: || /* Depuis la glibc 2.3.5 : */ _POSIX_C_SOURCE\ E<gt>=\ 200112L

note: type: Plain text
en: The B<truncate>()  and B<ftruncate>()  functions cause the regular file named by I<path> or referenced by I<fd> to be truncated to a size of precisely I<length> bytes.
fr: Les appels B<truncate>() et B<ftruncate>() tronquent le fichier ordinaire référencé par I<path> ou par le descripteur I<fd> à une longueur d'exactement I<length> octets.

note: type: Plain text
en: If the file previously was larger than this size, the extra data is lost.  If the file previously was shorter, it is extended, and the extended part reads as null bytes (\(aq\e0\(aq).
fr: Si le fichier était plus long, les données supplémentaires sont perdues. Si le fichier était plus court, il est étendu, et la portion supplémentaire est remplie caractères nuls (« \e0 »).

note: type: Plain text
en: The file offset is not changed.
fr: Le pointeur de position n'est pas modifié.

note: type: Plain text
en: If the size changed, then the st_ctime and st_mtime fields (respectively, time of last status change and time of last modification; see B<stat>(2))  for the file are updated, and the set-user-ID and set-group-ID permission bits may be cleared.
fr: Si la taille est modifiée, les champs st_ctime et st_mtime du fichier (respectivement heure de dernière modification d'état et de dernière modification\ ; consultez B<stat>(2)) sont mis à jour, et les bits Set-UID et Set-GID peuvent être effacés.

note: type: Plain text
en: With B<ftruncate>(), the file must be open for writing; with B<truncate>(), the file must be writable.
fr: Avec B<ftruncate>(), le fichier doit être ouvert en écriture\ ; avec B<truncate>(), il doit être accessible en écriture.

note: type: Plain text
en: For B<truncate>():
fr: Pour B<truncate>()\ :

note: type: Plain text
en: Search permission is denied for a component of the path prefix, or the named file is not writable by the user.  (See also B<path_resolution>(7).)
fr: Le fichier n'est pas accessible en écriture, ou un élément du chemin d'accès ne permet pas le parcours. (Consultez aussi B<path_resolution>(7).)

note: type: Plain text
en: I<Path> points outside the process's allocated address space.
fr: I<Path> pointe en dehors de l'espace d'adressage accessible.

note: type: Plain text
en: The argument I<length> is larger than the maximum file size. (XSI)
fr: L'argument I<length> dépasse la taille maximum d'un fichier.

note: type: Plain text
en: While blocked waiting to complete, the call was interrupted by a signal handler; see B<fcntl>(2)  and B<signal>(7).
fr: Alors qu'il était bloqué en attente de fin, l'appel a été interrompu par un gestionnaire de signal ; consultez B<fcntl>(2) et B<signal>(7).

note: type: Plain text
en: The argument I<length> is negative or larger than the maximum file size.
fr: L'argument I<length> est négatif ou plus grand que la taille maximale d'un fichier.

note: type: Plain text
en: An I/O error occurred updating the inode.
fr: Une erreur d'entrée-sortie bas niveau s'est produite.

note: type: Plain text
en: The named file is a directory.
fr: Le fichier est en réalité un répertoire.

note: type: Plain text
en: Too many symbolic links were encountered in translating the pathname.
fr: Trop de liens symboliques ont été rencontrés en parcourant le chemin.

note: type: Plain text
en: A component of a pathname exceeded 255 characters, or an entire pathname exceeded 1023 characters.
fr: Un composant du chemin dépasse 255 caractères ou le chemin complet dépasse 1023 caractères.

note: type: Plain text
en: The named file does not exist.
fr: Le fichier indiqué n'existe pas.

note: This happens for at least MSDOS and VFAT filesystems on kernel 2.6.13 type: Plain text
en: The underlying filesystem does not support extending a file beyond its current size.
fr: Le système de fichiers ne permet pas d'agrandir un fichier au-delà de sa taille actuelle.

note: type: Plain text
en: The file is a pure procedure (shared text) file that is being executed.
fr: Le fichier est un programme actuellement en cours d'exécution.

note: type: Plain text
en: For B<ftruncate>()  the same errors apply, but instead of things that can be wrong with I<path>, we now have things that can be wrong with the file descriptor, I<fd>:
fr: Pour B<ftruncate>() les mêmes erreurs sont possibles, sauf qu'au lieu des problèmes avec I<path>, on peut en avoir avec le descripteur de fichier I<fd>\ :

note: type: Plain text
en: I<fd> is not a valid descriptor.
fr: I<fd> n'est pas un descripteur valable.

note: type: TP
en: B<EBADF> or B<EINVAL>
fr: B<EBADF> ou B<EINVAL>

note: type: Plain text
en: I<fd> is not open for writing.
fr: I<fd> n'est pas ouvert en écriture.

note: type: Plain text
en: I<fd> does not reference a regular file.
fr: I<fd> n'est pas un descripteur de fichier ordinaire.

note: POSIX.1-1996 has .BR ftruncate (). POSIX.1-2001 also has .BR truncate (), as an XSI extension. .LP SVr4 documents additional .BR truncate () error conditions EMFILE, EMULTIHP, ENFILE, ENOLINK.  SVr4 documents for .BR ftruncate () an additional EAGAIN error condition. type: Plain text
en: 4.4BSD, SVr4, POSIX.1-2001 (these calls first appeared in 4.2BSD).
fr: BSD\ 4.4, SVr4, POSIX.1-2001 (ces appels système sont apparus dans BSD\ 4.2).

note: At the very least: OSF/1, Solaris 7, and FreeBSD conform, mtk, Jan 2002 type: Plain text
en: The details in DESCRIPTION are for XSI-compliant systems.  For non-XSI-compliant systems, the POSIX standard allows two behaviors for B<ftruncate>()  when I<length> exceeds the file length (note that B<truncate>()  is not specified at all in such an environment): either returning an error, or extending the file.  Like most UNIX implementations, Linux follows the XSI requirement when dealing with native filesystems.  However, some nonnative filesystems do not permit B<truncate>()  and B<ftruncate>()  to be used to extend a file beyond its current length: a notable example on Linux is VFAT.
fr: Les détails dans la section DESCRIPTION sont ceux de systèmes compatibles XSI. Pour les systèmes non compatibles, la norme POSIX autorise deux comportements pour B<ftruncate>() quand I<length> dépasse la longueur du fichier (notez que B<truncate>() n'est pas du tout spécifié dans un tel environnement)\ : soit renvoyer une erreur, soit étendre le fichier. Linux, comme la plupart des UNIX, suit le comportement XSI sur les systèmes de fichiers natifs. Cependant, certains systèmes de fichiers non natifs ne permettent pas l'utilisation de B<truncate>() et B<ftruncate>() pour étendre un fichier au-delà de sa taille actuelle\ : un exemple notable sous Linux est VFAT.

note: type: Plain text
en: The original Linux B<truncate>()  and B<ftruncate>()  system calls were not designed to handle large file offsets.  Consequently, Linux 2.4 added B<truncate64>()  and B<ftruncate64>()  system calls that handle large files.  However, these details can be ignored by applications using glibc, whose wrapper functions transparently employ the more recent system calls where they are available.
fr: Les appels système B<truncate>() et B<ftruncate>() originaux de Linux n'ont pas été conçus pour gérer les positions dans des fichiers de très grosse taille. En conséquence, Linux 2.4 a ajouté les appels système B<truncate64>() et B<ftruncate64>() qui permettent de gérer de gros fichiers. Cependant, ces détails peuvent être ignorés par les applications qui utilisent la glibc, car ses fonctions encapsulent de manière transparente les appels système les plus récents disponibles.

note: http://sourceware.org/bugzilla/show_bug.cgi?id=12037 type: Plain text
en: A header file bug in glibc 2.12 meant that the minimum value of B<_POSIX_C_SOURCE> required to expose the declaration of B<ftruncate>()  was 200809L instead of 200112L.  This has been fixed in later glibc versions.
fr: Un bogue dans les en\(hytêtes de la glibc 2.12 fait que la valeur minimale de B<_POSIX_C_SOURCE> requise pour exposer la déclaration B<ftruncate>() était 200809L au lieu de 200112L. Ce bogue a été corrigé dans les versions ultérieures de la glibc.

note: type: TH
en: 2013-12-23
fr: 23 décembre 2013

note: type: Plain text
en: ualarm - schedule signal after given number of microseconds
fr: ualarm - Programmer un signal après un nombre donné de microsecondes

note: type: Plain text
en: B<useconds_t ualarm(useconds_t >I<usecs>B<, useconds_t >I<interval>B<);>
fr: B<useconds_t ualarm(useconds_t >I<usecs>B<, useconds_t >I<intervalle>B<);>

note: type: Plain text
en: B<ualarm>():
fr: B<ualarm>() :

note: type: Plain text
en: The B<ualarm>()  function causes the signal B<SIGALRM> to be sent to the invoking process after (not less than)  I<usecs> microseconds.  The delay may be lengthened slightly by any system activity or by the time spent processing the call or by the granularity of system timers.
fr: La fonction B<ualarm>() programme le signal B<SIGALRM> pour qu'il soit envoyé au processus appelant après (au moins) I<usecs> microsecondes. Le délai peut être légèrement allongé par la charge système, par le temps passé à traiter l'appel système, ou par la granularité des timers système.

note: type: Plain text
en: Unless caught or ignored, the B<SIGALRM> signal will terminate the process.
fr: À moins d'être capturé ou ignoré, le signal B<SIGALRM> terminera le processus.

note: type: Plain text
en: If the I<interval> argument is nonzero, further B<SIGALRM> signals will be sent every I<interval> microseconds after the first.
fr: Si l'argument I<intervalle> est non nul, d'autres signaux B<SIGALRM> seront envoyés toutes les I<intervalle> microsecondes après le premier.

note: type: Plain text
en: This function returns the number of microseconds remaining for any alarm that was previously set, or 0 if no alarm was pending.
fr: Cette fonction renvoie le nombre de microsecondes restant pour toute alarme définie précédemment, ou zéro si aucune alarme n'est en attente.

note: type: Plain text
en: Interrupted by a signal.
fr: Interruption par un signal.

note: type: Plain text
en: I<usecs> or I<interval> is not smaller than 1000000.  (On systems where that is considered an error.)
fr: I<usecs> ou I<intervalle> est plus grand que 1\ 000\ 000 (1 seconde) (sur les systèmes qui considèrent qu'il s'agit d'une erreur).

note: type: Plain text
en: The B<ualarm>()  function is thread-safe.
fr: La fonction B<ualarm>() est sûre dans un contexte multithread.

note: type: Plain text
en: 4.3BSD, POSIX.1-2001.  POSIX.1-2001 marks B<ualarm>()  as obsolete.  POSIX.1-2008 removes the specification of B<ualarm>().  4.3BSD, SUSv2, and POSIX do not define any errors.
fr: BSD\ 4.3, POSIX.1-2001. POSIX.1-2001 marque B<ualarm>() comme obsolète. POSIX.1-2008 supprime la spécification de B<ualarm>(). BSD\ 4.3, SUSv2 et POSIX ne définissent pas d'erreurs.

note: This case is not documented in HP-US, Solar, FreeBSD, NetBSD, or OpenBSD! type: Plain text
en: POSIX.1-2001 does not specify what happens if the I<usecs> argument is 0.  On Linux (and probably most other systems), the effect is to cancel any pending alarm.
fr: POSIX.1-2001 ne spécifie pas ce qui se passe si le paramètre I<usecs> vaut 0. Sur Linux (et probablement la plupart des autres systèmes), l'effet est d'annuler toute alarme en attente.

note: type: Plain text
en: The type I<useconds_t> is an unsigned integer type capable of holding integers in the range [0,1000000].  On the original BSD implementation, and in glibc before version 2.1, the arguments to B<ualarm>()  were instead typed as I<unsigned int>.  Programs will be more portable if they never mention I<useconds_t> explicitly.
fr: Le type I<useconds_t> est un entier non signé capable de contenir des entiers dans l'intervalle [0,1000000]. Dans l'implémentation BSD d'origine et dans la glibc avant la version 2.1, les paramètres de B<ualarm>() étaient des I<unsigned int>. Les programmes gagneront en portabilité en évitant de mentionner le type I<useconds_t> explicitement.

note: type: Plain text
en: The interaction of this function with other timer functions such as B<alarm>(2), B<sleep>(3), B<nanosleep>(2), B<setitimer>(2), B<timer_create>(2), B<timer_delete>(2), B<timer_getoverrun>(2), B<timer_gettime>(2), B<timer_settime>(2), B<usleep>(3)  is unspecified.
fr: L'interaction entre cette fonction et les autres fonctions de temporisations comme B<alarm>(2), B<sleep>(3), B<nanosleep>(2), B<setitimer>(2), B<timer_create>(2), B<timer_delete>(2), B<timer_getoverrun>(2), B<timer_gettime>(2), B<timer_settime>(2), B<usleep>(3) n'est pas spécifiée.

note: type: Plain text
en: This function is obsolete.  Use B<setitimer>(2)  or POSIX interval timers (B<timer_create>(2), etc.)  instead.
fr: Cette fonction est obsolète. Utilisez B<setitimer>(2) ou des temporisations POSIX (B<timer_create>(2), etc.) à la place.

note: type: TH
en: 2008-01-09
fr: 9 janvier 2008

note: type: Plain text
en: umask - set file mode creation mask
fr: umask - Définir le masque de création de fichiers

note: type: Plain text
en: B<umask>()  sets the calling process's file mode creation mask (umask) to I<mask> & 0777 (i.e., only the file permission bits of I<mask> are used), and returns the previous value of the mask.
fr: B<umask>() définit le masque de création de fichiers à la valeur I<mask> & 0777 (c'est-à-dire seuls les bits relatifs aux permissions des fichiers de I<mask> sont utilisés), et renvoie la valeur précédente du masque.

note: e.g., mkfifo(), creat(), mknod(), sem_open(), mq_open(), shm_open() but NOT the System V IPC *get() calls type: Plain text
en: The umask is used by B<open>(2), B<mkdir>(2), and other system calls that create files to modify the permissions placed on newly created files or directories.  Specifically, permissions in the umask are turned off from the I<mode> argument to B<open>(2)  and B<mkdir>(2).
fr: Ce masque est utilisé par B<open>(2), B<mkdir>(2) et autres pour positionner les permissions d'accès initiales sur les fichiers nouvellement créés. Les bits contenus dans l'umask sont éliminés de l'argument I<mode> de l'appel B<open>(2) ou B<mkdir>(2).

note: type: Plain text
en: The constants that should be used to specify I<mask> are described under B<stat>(2).
fr: Les constantes à utiliser pour indiquer I<mask> sont décrites dans B<stat>(2).

note: type: Plain text
en: The typical default value for the process umask is I<S_IWGRP\ |\ S_IWOTH> (octal 022).  In the usual case where the I<mode> argument to B<open>(2)  is specified as:
fr: La valeur par défaut typique pour l'umask d'un processus est I<S_IWGRP\ |\ S_IWOTH> (022 en octal). Dans le cas général, où l'argument I<mode> de B<open>(2) est indiqué comme\ :

note: type: Plain text
en: (octal 0666) when creating a new file, the permissions on the resulting file will be:
fr: (0666 en octal) à la création d'un nouveau fichier, les permissions sur le fichier créé seront\ :

note: type: Plain text
en: (because 0666 & ~022 = 0644; i.e., rw-r--r--).
fr: (car 0666 & ~022 = 0644, c'est-à-dire rw-r--r--).

note: type: Plain text
en: This system call always succeeds and the previous value of the mask is returned.
fr: Cet appel système n'échoue jamais, et la valeur précédente du masque est renvoyée.

note: type: Plain text
en: A child process created via B<fork>(2)  inherits its parent's umask.  The umask is left unchanged by B<execve>(2).
fr: Un processus fils créé par B<fork>(2) hérite de l'umask de son père. L'umask est conservé après un B<execve>(2).

note: type: Plain text
en: The umask setting also affects the permissions assigned to POSIX IPC objects (B<mq_open>(3), B<sem_open>(3), B<shm_open>(3)), FIFOs (B<mkfifo>(3)), and UNIX domain sockets (B<unix>(7))  created by the process.  The umask does not affect the permissions assigned to System V IPC objects created by the process (using B<msgget>(2), B<semget>(2), B<shmget>(2)).
fr: La configuration de l'umask affecte également les permissions des objets IPC POSIX (B<mq_open>(3), B<sem_open>(3), B<shm_open>(3)), FIFO (B<mkfifo>(3)), et sockets de domaine UNIX (B<unix>(7)) créés par le processus. L'umask n'affecte pas les permissions des objets IPC System V créés par le processus (en utilisant B<msgget>(2), B<semget>(2), B<shmget>(2)).

note: type: Plain text
en: uname - get name and information about current kernel
fr: uname - Obtenir des informations à propos du noyau

note: type: Plain text
en: B<uname>()  returns system information in the structure pointed to by I<buf>.  The I<utsname> struct is defined in I<E<lt>sys/utsname.hE<gt>>:
fr: B<uname>() renvoie les informations dans le tampon I<buf>. La structure I<utsname> est définie dans I<E<lt>sys/utsname.hE<gt>> comme suit\ :

note: type: Plain text
en: struct utsname {
        char sysname[];    /* Operating system name (e.g., "Linux") */
        char nodename[];   /* Name within "some implementation-defined
                              network" */
        char release[];    /* Operating system release (e.g., "2.6.28") */
        char version[];    /* Operating system version */
        char machine[];    /* Hardware identifier */
    #ifdef _GNU_SOURCE
        char domainname[]; /* NIS or YP domain name */
    #endif
    };
fr: struct utsname {
        char sysname[];    /* Nom du système d'exploitation
                              (par exemple, "Linux") */
        char nodename[];   /* Nom dans "des réseaux définis
                              par l'implémentation" */
        char release[];    /* release du système d'exploitation
                              (par exemple "2.6.28") */
        char version[];    /* version du système d'exploitation */
        char machine[];    /* Identifiant du matériel */
    #ifdef _GNU_SOURCE
        char domainname[]; /* nom de domaine NIS ou YP */
    #endif
    };

note: type: Plain text
en: The length of the arrays in a I<struct utsname> is unspecified (see NOTES); the fields are terminated by a null byte (\(aq\e0\(aq).
fr: La longueur des chaînes de la I<struct utsname> n'est pas spécifiée (consultez la section NOTES), les champs se terminent par un caractère nul (\(aq\e0\(aq).

note: type: Plain text
en: I<buf> is not valid.
fr: I<buf> pointe en dehors de l'espace d'adressage accessible

note: type: Plain text
en: SVr4, POSIX.1-2001.  There is no B<uname>()  call in 4.3BSD.
fr: SVr4, POSIX.1-2001. Il n'y a pas d'appel B<uname>() dans BSD\ 4.3.

note: type: Plain text
en: The I<domainname> member (the NIS or YP domain name) is a GNU extension.
fr: Le champ I<domainname> (nom de domaine NIS ou YP) est une extension Gnu.

note: type: Plain text
en: This is a system call, and the operating system presumably knows its name, release and version.  It also knows what hardware it runs on.  So, four of the fields of the struct are meaningful.  On the other hand, the field I<nodename> is meaningless: it gives the name of the present machine in some undefined network, but typically machines are in more than one network and have several names.  Moreover, the kernel has no way of knowing about such things, so it has to be told what to answer here.  The same holds for the additional I<domainname> field.
fr: Ceci est un appel système, et le système d'exploitation est supposé connaître son nom, et ses numéros de version et de mise à jour. Il connaît également le matériel sur lequel il tourne, ainsi les quatre premiers champs de la structure sont significatifs. En revanche, le champ I<nodename> n'est pas significatif\ : il donne le nom de la machine dans un réseau non précisé, mais généralement les machines sont connectées à plusieurs réseaux et ont plusieurs noms. De plus, le noyau n'a pas de moyen de connaître ces informations, et on doit les lui fournir. Ceci est vrai aussi pour le champ supplémentaire I<domainname>.

note: type: Plain text
en: To this end Linux uses the system calls B<sethostname>(2)  and B<setdomainname>(2).  Note that there is no standard that says that the hostname set by B<sethostname>(2)  is the same string as the I<nodename> field of the struct returned by B<uname>()  (indeed, some systems allow a 256-byte hostname and an 8-byte nodename), but this is true on Linux.  The same holds for B<setdomainname>(2)  and the I<domainname> field.
fr: À cette fin, Linux utilise les appels système B<sethostname>(2) et B<setdomainname>(2). Notez qu'aucun standard ne dit que le nom d'hôte défini par B<sethostname>(2) représente la même chaîne que le champ I<nodename> de la structure renvoyée par B<uname>() (de fait, certains systèmes autorisent un nom d'hôte de 256 octets et un nom de nœud sur 8 octets), mais c'est le cas sous Linux. La même chose est vraie pour B<setdomainname>(2) et le champ I<domainname>.

note: type: Plain text
en: The length of the fields in the struct varies.  Some operating systems or libraries use a hardcoded 9 or 33 or 65 or 257.  Other systems use B<SYS_NMLN> or B<_SYS_NMLN> or B<UTSLEN> or B<_UTSNAME_LENGTH>.  Clearly, it is a bad idea to use any of these constants; just use sizeof(...).  Often 257 is chosen in order to have room for an internet hostname.
fr: La longueur des champs de la structure varie. Certains systèmes d'exploitation ou bibliothèques utilisent des valeurs en dur de 9, 33, 65, ou 257. D'autres systèmes utilisent B<SYS_NMLN>, B<_SYS_NMLN>, B<UTSLEN> ou B<_UTSNAME_LENGTH>. Clairement, il faut éviter d'utiliser ces constantes, employez plutôt sizeof(...). On choisit souvent la valeur 257 qui permet de stocker un nom d'hôte Internet entier.

note: type: Plain text
en: Part of the utsname information is also accessible via I</proc/sys/kernel/>{I<ostype>, I<hostname>, I<osrelease>, I<version>, I<domainname>}.
fr: Une partie des informations utsname est aussi accessible par I</proc/sys/kernel/>{I<ostype>, I<hostname>, I<osrelease>, I<version>, I<domainname>}.

note: type: SS
en: Underlying kernel interface
fr: Interface noyau sous-jacente

note: That was back before Linux 1.0 That was also back before Linux 1.0 type: Plain text
en: Over time, increases in the size of the I<utsname> structure have led to three successive versions of B<uname>(): I<sys_olduname>()  (slot I<__NR_oldolduname>), I<sys_uname>()  (slot I<__NR_olduname>), and I<sys_newuname>()  (slot I<__NR_uname)>.  The first one used length 9 for all fields; the second used 65; the third also uses 65 but adds the I<domainname> field.  The glibc B<uname>()  wrapper function hides these details from applications, invoking the most recent version of the system call provided by the kernel.
fr: Avec le temps, l'augmentation de la taille de la structure I<utsname> a conduit à 3 versions successives de B<uname>() : I<sys_olduname>() (entrée I<__NR_oldolduname>), I<sys_uname>() (entrée I<__NR_olduname>) et I<sys_newuname>() (entrée I<__NR_uname>). La première utilisait une longueur de 9 pour tous les champs ; la seconde utilisait 65 ; et la troisième une longueur de 65 également mais avec un champ I<domainname> supplémentaire. La fonction B<uname>() de la glibc cache ces détails aux applications, en appelant la version la plus récente de ces appels système fournie par le noyau.

note: type: TH
en: 2005-01-09
fr: 9 janvier 2005

note: type: Plain text
en: uselib - load shared library
fr: uselib - Sélectionner une bibliothèque partagée

note: type: Plain text
en: The system call B<uselib>()  serves to load a shared library to be used by the calling process.  It is given a pathname.  The address where to load is found in the library itself.  The library can have any recognized binary format.
fr: L'appel système B<uselib>() permet de charger une bibliothèque partagée qui sera utilisée par le processus appelant. Il prend un chemin de fichier comme argument. L'adresse où charger la bibliothèque est trouvée dans la bibliothèque elle-même. La bibliothèque peut avoir n'importe quel format de binaire reconnu.

note: type: Plain text
en: In addition to all of the error codes returned by B<open>(2)  and B<mmap>(2), the following may also be returned:
fr: En plus de toutes les erreurs déclenchées par B<open>(2) et B<mmap>(2), les erreurs suivantes peuvent se produire\ :

note: type: Plain text
en: The library specified by I<library> does not have read or execute permission, or the caller does not have search permission for one of the directories in the path prefix.  (See also B<path_resolution>(7).)
fr: La bibliothèque indiquée par I<library> n'est pas accessible en lecture ou en écriture, ou l'appelant n'a pas la permission de parcours pour l'un des répertoires du chemin. (Consultez aussi B<path_resolution>(7).)

note: type: Plain text
en: The file specified by I<library> is not an executable of a known type; for example, it does not have the correct magic numbers.
fr: Le fichier décrit par I<library> n'est pas un exécutable de type connu (par exemple n'a pas le bon nombre magique).

note: type: Plain text
en: B<uselib>()  is Linux-specific, and should not be used in programs intended to be portable.
fr: B<uselib>() est spécifique à Linux et ne devrait pas être employé dans des programmes destinés à être portables.

note: type: Plain text
en: B<uselib>()  was used by early libc startup code to load the shared libraries with names found in an array of names in the binary.
fr: B<uselib>() était utilisé par le code de démarrage d'anciennes versions de libc pour charger les bibliothèques partagées dont les noms se trouvaient dans un tableau dans le binaire.

note: libc 4.3.1f - changelog 1993-03-02 libc 4.3.4 - changelog 1993-04-21 type: Plain text
en: Since libc 4.3.2, startup code tries to prefix these names with "/usr/lib", "/lib" and "" before giving up.  In libc 4.3.4 and later these names are looked for in the directories found in B<LD_LIBRARY_PATH>, and if not found there, prefixes "/usr/lib", "/lib" and "/" are tried.
fr: Depuis libc 4.3.2, le code de démarrage essaie de préfixer ces noms avec "/usr/lib", "/lib" puis "" avant d'abandonner. À partir de la libc 4.3.4, ces noms sont recherchés dans les répertoires listés dans la variable B<LD_LIBRARY_PATH>, et les préfixes "/usr/lib", "/lib" et "/" sont essayés ensuite si la bibliothèque n'a pas été trouvée.

note: type: Plain text
en: From libc 4.4.4 on only the library "/lib/ld.so" is loaded, so that this dynamic library can load the remaining libraries needed (again using this call).  This is also the state of affairs in libc5.
fr: À partir de la libc 4.4.4, seule la bibliothèque «\ /lib/ld.so\ » est chargée, afin que cette bibliothèque dynamique puisse charger les autres bibliothèques requises (à nouveau avec cette fonction). Ceci est également valable pour libc5.

note: type: Plain text
en: glibc2 does not use this call.
fr: glibc2 n'utilise pas cette fonction.

note: type: TH
en: 2013-12-10
fr: 10 décembre 2013

note: type: Plain text
en: usleep - suspend execution for microsecond intervals
fr: usleep - Interrompre le programme durant un nombre donné de microsecondes

note: type: Plain text
en: B<usleep>():
fr: B<usleep>() :

note: type: Plain text
en: The B<usleep>()  function suspends execution of the calling thread for (at least) I<usec> microseconds.  The sleep may be lengthened slightly by any system activity or by the time spent processing the call or by the granularity of system timers.
fr: La fonction B<usleep>() suspend l'exécution du thread appelant durant (au moins) I<usec> microsecondes. La période de sommeil peut être allongée par la charge système, par le temps passé à traiter l'appel de fonction, ou par la granularité des temporisations système.

note: type: Plain text
en: The B<usleep>()  function returns 0 on success.  On error, -1 is returned, with I<errno> set to indicate the cause of the error.
fr: La fonction B<usleep>() renvoie 0 en cas de succès. En cas d'erreur, -1 est renvoyé et I<errno> contient le code d'erreur.

note: type: Plain text
en: Interrupted by a signal; see B<signal>(7).
fr: Interruption par un signal ; consultez B<signal>(7).

note: type: Plain text
en: I<usec> is not smaller than 1000000.  (On systems where that is considered an error.)
fr: I<usec> est plus grand que 1\ 000\ 000 (sur les systèmes où cela représente une erreur.

note: type: Plain text
en: The B<usleep>()  function is thread-safe.
fr: La fonction B<usleep>() est sûre dans un contexte multithread.

note: type: Plain text
en: 4.3BSD, POSIX.1-2001.  POSIX.1-2001 declares this function obsolete; use B<nanosleep>(2)  instead.  POSIX.1-2008 removes the specification of B<usleep>().
fr: BSD 4.3, POSIX.1-2001. POSIX.1-2001 déclare cette fonction comme obsolète ; utilisez B<nanosleep>(2) à la place. POSIX.1-2008 supprime la spécification de B<usleep>().

note: type: Plain text
en: On the original BSD implementation, and in glibc before version 2.2.2, the return type of this function is I<void>.  The POSIX version returns I<int>, and this is also the prototype used since glibc 2.2.2.
fr: Dans l'implémentation BSD d'origine et dans la glibc avant la version 2.2.2, le type de retour de cette fonction était I<void>. La version POSIX renvoie un I<int>, ce qui est également le prototype de la glibc depuis la version 2.2.2.

note: type: Plain text
en: Only the B<EINVAL> error return is documented by SUSv2 and POSIX.1-2001.
fr: Seule la valeur de retour B<EINVAL> est documentée dans SUSv2 et POSIX.1-2001.

note: type: Plain text
en: The type I<useconds_t> is an unsigned integer type capable of holding integers in the range [0,1000000].  Programs will be more portable if they never mention this type explicitly.  Use
fr: Le type I<useconds_t> est un entier non signé capable de contenir des entiers dans l'intervalle [0,1000000]. Les programmes gagneront en portabilité en évitant de mentionner ce type explicitement. Utilisez

note: type: Plain text
en: The interaction of this function with the B<SIGALRM> signal, and with other timer functions such as B<alarm>(2), B<sleep>(3), B<nanosleep>(2), B<setitimer>(2), B<timer_create>(2), B<timer_delete>(2), B<timer_getoverrun>(2), B<timer_gettime>(2), B<timer_settime>(2), B<ualarm>(3)  is unspecified.
fr: L'interaction entre cette fonction et B<SIGALRM>, ou d'autres fonctions comme B<alarm>(2), B<sleep>(3), B<nanosleep>(2), B<setitimer>(2), B<timer_create>(2), B<timer_delete>(2), B<timer_getoverrun>(2), B<timer_gettime>(2), B<timer_settime>(2), B<ualarm>(3) est indéfinie.

note: type: TH
en: 2012-08-05
fr: 5 août 2012

note: type: Plain text
en: vfork - create a child process and block parent
fr: vfork - Créer un processus fils et bloquer le père

note: type: Plain text
en: B<vfork>():
fr: B<vfork>() :

note: type: SS
en: Standard description
fr: Description des normes

note: type: Plain text
en: (From POSIX.1)  The B<vfork>()  function has the same effect as B<fork>(2), except that the behavior is undefined if the process created by B<vfork>()  either modifies any data other than a variable of type I<pid_t> used to store the return value from B<vfork>(), or returns from the function in which B<vfork>()  was called, or calls any other function before successfully calling B<_exit>(2)  or one of the B<exec>(3)  family of functions.
fr: (D'après POSIX.1). La routine B<vfork>() a le même effet que B<fork>(2), sauf que le comportement est indéfini si le processus créé par B<vfork>() effectue l'une des actions suivantes avant d'appeler avec succès B<_exit>(2) ou une routine de la famille B<exec>(3)\ : modification d'une donnée autre que la variable de type I<pid_t> stockant le retour de B<vfork>(), revenir de la fonction dans laquelle B<vfork>() a été invoqué, appel d'une autre fonction.

note: type: SS
en: Linux description
fr: Description de l'implémentation Linux

note: type: Plain text
en: B<vfork>(), just like B<fork>(2), creates a child process of the calling process.  For details and return value and errors, see B<fork>(2).
fr: B<vfork>(), tout comme B<fork>(2), crée un processus fils à partir du processus appelant. Pour plus de détails sur les valeurs renvoyées et les erreurs possibles, consultez B<fork>(2).

note: type: Plain text
en: B<vfork>()  is a special case of B<clone>(2).  It is used to create new processes without copying the page tables of the parent process.  It may be useful in performance-sensitive applications where a child is created which then immediately issues an B<execve>(2).
fr: B<vfork>() est conçu comme un cas particulier de B<clone>(2). Il sert à créer un nouveau processus sans effectuer de copie de la table des pages mémoire du processus père. Ceci peut être utile dans des applications nécessitant une grande rapidité d'exécution, si le fils doit invoquer immédiatement un appel B<execve>(2).

note: type: Plain text
en: B<vfork>()  differs from B<fork>(2)  in that the calling thread is suspended until the child terminates (either normally, by calling B<_exit>(2), or abnormally, after delivery of a fatal signal), or it makes a call to B<execve>(2).  Until that point, the child shares all memory with its parent, including the stack.  The child must not return from the current function or call B<exit>(3), but may call B<_exit>(2).
fr: B<vfork>() diffère aussi de B<fork>(2) car le thread appelant reste suspendu jusqu'à ce que le fils se termine (soit normalement, en appelant B<_exit>(2), soit de façon anormale après l'envoie d'un signal fatal) ou qu'il appelle B<execve>(2). Jusqu'à ce point, le fils partage toute la mémoire avec son père, y compris la pile. Le processus fils ne doit donc pas revenir de la fonction en cours, ni invoquer une nouvelle routine. Il ne doit pas appeler B<exit>(3), mais à la place B<_exit>(2).

note: type: Plain text
en: As with B<fork>(2), the child process created by B<vfork>()  inherits copies of various of the caller's process attributes (e.g., file descriptors, signal dispositions, and current working directory); the B<vfork>()  call differs only in the treatment of the virtual address space, as described above.
fr: Comme avec B<fork>(2), le processus fils créé par B<vfork>()  hérite des copies de plusieurs attributs du processus appelant (par exemple les descripteurs de fichiers, les dispositions des signaux et le répertoire de travail actuel)\ ; l'appel B<vfork>()  diffère seulement par le traitement de l'espace d'adressage virtuel, comme décrit ci-dessus.

note: type: Plain text
en: Signals sent to the parent arrive after the child releases the parent's memory (i.e., after the child terminates or calls B<execve>(2)).
fr: Les signaux pour le processus père sont délivrés après que le fils libère la mémoire du père (c'est-à-dire après que le fils se termine ou qu'il appelle B<execve>(2)).

note: type: SS
en: Historic description
fr: Description historique

note: type: Plain text
en: Under Linux, B<fork>(2)  is implemented using copy-on-write pages, so the only penalty incurred by B<fork>(2)  is the time and memory required to duplicate the parent's page tables, and to create a unique task structure for the child.  However, in the bad old days a B<fork>(2)  would require making a complete copy of the caller's data space, often needlessly, since usually immediately afterward an B<exec>(3)  is done.  Thus, for greater efficiency, BSD introduced the B<vfork>()  system call, which did not fully copy the address space of the parent process, but borrowed the parent's memory and thread of control until a call to B<execve>(2)  or an exit occurred.  The parent process was suspended while the child was using its resources.  The use of B<vfork>()  was tricky: for example, not modifying data in the parent process depended on knowing which variables were held in a register.
fr: Sous Linux, B<fork>(2) est implémenté en utilisant un mécanisme de copie en écriture, ainsi ses seuls coûts sont le temps et la mémoire nécessaire pour dupliquer la table des pages mémoire du processus père, et créer une structure de tâche pour le fils. Toutefois, jadis B<fork>(2) nécessitait malheureusement une copie complète de l'espace d'adresse du père, souvent inutile car un appel B<exec>(3) est souvent réalisé immédiatement par le fils. Pour améliorer les performances, BSD a introduit un appel système B<vfork>() qui ne copie pas l'espace d'adressage du père, mais emprunte au parent son espace d'adressage et son fil de contrôle jusqu'à un appel à B<execve>(2) ou exit. Le processus père était suspendu tant que le fils utilisait les ressources. L'utilisation de B<vfork>() était loin d'être facile, car pour éviter de modifier les données du processus père, il fallait être capable de déterminer quelles variables se trouvaient dans des registres du processeur.

note: type: Plain text
en: 4.3BSD; POSIX.1-2001 (but marked OBSOLETE).  POSIX.1-2008 removes the specification of B<vfork>().
fr: BSD 4.3, POSIX.1-2001 (mais la déclare obsolète). POSIX.1-2008 supprime la spécification de B<vfork>().

note: In AIXv3.1 vfork is equivalent to fork. type: Plain text
en: The requirements put on B<vfork>()  by the standards are weaker than those put on B<fork>(2), so an implementation where the two are synonymous is compliant.  In particular, the programmer cannot rely on the parent remaining blocked until the child either terminates or calls B<execve>(2), and cannot rely on any specific behavior with respect to shared memory.
fr: Les exigences que les standards apportent sur B<vfork>() sont plus relâchées que celles sur B<fork>(2), ainsi il est possible d'avoir une implémentation conforme où les deux appels sont synonymes. En particulier, un programmeur ne doit pas s'appuyer sur le fait que le père reste bloqué jusqu'à ce que le fils se termine ou appelle B<execve>(2), ni sur le comportement par rapport à la mémoire partagée.

note: type: Plain text
en: Some consider the semantics of B<vfork>()  to be an architectural blemish, and the 4.2BSD man page stated: "This system call will be eliminated when proper system sharing mechanisms are implemented.  Users should not depend on the memory sharing semantics of B<vfork>()  as it will, in that case, be made synonymous to B<fork>(2)." However, even though modern memory management hardware has decreased the performance difference between B<fork>(2)  and B<vfork>(), there are various reasons why Linux and other systems have retained B<vfork>():
fr: Certaines personnes considèrent la sémantique de B<vfork>() comme une verrue architecturale, et la page de manuel de BSD\ 4.2 indique que «\ cet appel système sera supprimé quand des mécanismes de partage appropriés seront implémentés. Il ne faut pas essayer de tirer profit du partage mémoire induit par B<vfork>(), car dans ce cas il sera rendu synonyme de B<fork>(2)\ ». Cependant, même si le matériel de gestion mémoire matériel a diminué la différence de performances entre B<fork>(2) et B<vfork>(), il existe diverses raisons pour lesquelles Linux et d'autres systèmes ont conservé B<vfork>()\ :

note: type: Plain text
en: Some performance-critical applications require the small performance advantage conferred by B<vfork>().
fr: Certaines applications de haute performance ont besoin du petit gain apporté par B<vfork>().

note: http://stackoverflow.com/questions/4259629/what-is-the-difference-between-fork-and-vfork http://developers.sun.com/solaris/articles/subprocess/subprocess.html http://mailman.uclinux.org/pipermail/uclinux-dev/2009-April/000684.html type: Plain text
en: B<vfork>()  can be implemented on systems that lack a memory-management unit (MMU), but B<fork>(2)  can't be implemented on such systems.  (POSIX.1-2008 removed B<vfork>()  from the standard; the POSIX rationale for the B<posix_spawn>(3)  function notes that that function, which provides functionality equivalent to B<fork>(2)+B<exec>(3), is designed to be implementable on systems that lack an MMU.)
fr: B<vfork>() peut être implémenté sur des systèmes sans unité de gestion mémoire (MMU, pour «\ memory-management unit\ »), mais B<fork>(2) ne peut pas être implémenté sur de tels systèmes (POSIX.1-2008 a supprimé B<vfork>() de la norme\ ; la raison invoquée par POSIX pour la fonction B<posix_spawn>(3) note que cette fonction, qui fournit une fonctionnalité équivalente à B<fork>(2)+B<exec>(3), est conçue pour être implémentable sur des systèmes sans MMU).

note: type: Plain text
en: Fork handlers established using B<pthread_atfork>(3)  are not called when a multithreaded program employing the NPTL threading library calls B<vfork>().  Fork handlers are called in this case in a program using the LinuxThreads threading library.  (See B<pthreads>(7)  for a description of Linux threading libraries.)
fr: Les gestionnaires enregistrés avec B<pthread_atfork>(3) ne sont pas appelés lorsqu'un programme multithreadé utilisant la bibliothèque de threads NPTL appelle B<vfork>(). En revanche ces gestionnaires sont appelés si le programme utilise la bibliothèque LinuxThreads. (Consultez B<pthreads>(7) pour une description des bibliothèques de threads pour Linux.)

note: type: Plain text
en: A call to B<vfork>()  is equivalent to calling B<clone>(2)  with I<flags> specified as:
fr: Un appel à B<vfork>()  est équivalent à appeler B<clone>(2)  avec I<flags> valant\ :

note: In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still present, but definitely on its way out'. type: Plain text
en: The B<vfork>()  system call appeared in 3.0BSD.  In 4.4BSD it was made synonymous to B<fork>(2)  but NetBSD introduced it again, cf.  E<.UR http://www.netbsd.org\:/Documentation\:/kernel\:/vfork.html> E<.UE .> In Linux, it has been equivalent to B<fork>(2)  until 2.2.0-pre6 or so.  Since 2.2.0-pre9 (on i386, somewhat later on other architectures) it is an independent system call.  Support was added in glibc 2.0.112.
fr: L'appel système B<vfork>() est apparu dans BSD\ 3.0. Dans BSD\ 4.4, il est devenu synonyme de B<fork>(2), mais NetBSD l'a réintroduit à nouveau (consultez E<.UR http://www.netbsd.org\:/Documentation\:/kernel\:/vfork.html> E<.UE ).> Sous Linux, il fut l'équivalent de B<fork>(2) jusqu'au noyau 2.2.0-pre-6. Depuis le 2.2.0-pre-9 il s'agit d'un appel système indépendant. Le support dans la bibliothèque a été introduit dans la glibc 2.0.112.

note: As far as I can tell, the following is not true in 2.6.19: Currently (Linux 2.3.25), .BR strace (1) cannot follow .BR vfork () and requires a kernel patch. type: Plain text
en: Details of the signal handling are obscure and differ between systems.  The BSD man page states: "To avoid a possible deadlock situation, processes that are children in the middle of a B<vfork>()  are never sent B<SIGTTOU> or B<SIGTTIN> signals; rather, output or I<ioctl>s are allowed and input attempts result in an end-of-file indication."
fr: Les détails de la gestion des signaux sont compliqués, et varient suivant les systèmes. La page de manuel BSD indique\ : «\ Pour éviter une possible situation d'interblocage, les processus qui sont des fils au milieu d'un B<vfork>() ne reçoivent jamais le signal B<SIGTTOU> ou B<SIGTTIN>\ ; des sorties et des I<ioctl> sont autorisés, mais des tentatives de lecture donneront une indication de fin de fichier.\ »

note: type: Plain text
en: vhangup - virtually hangup the current terminal
fr: vhangup - Déconnecter virtuellement un terminal

note: type: Plain text
en: B<vhangup>(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ E<lt>\ 500)
fr: B<vhangup>() : _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE\ E<lt>\ 500)

note: type: Plain text
en: B<vhangup>()  simulates a hangup on the current terminal.  This call arranges for other users to have a ``clean'' terminal at login time.
fr: B<vhangup>() simule une déconnexion du terminal actuel. Cet appel système est utilisé pour que les autres utilisateurs aient un écran de connexion «\ propre\ ».

note: type: Plain text
en: The calling process has insufficient privilege to call B<vhangup>(); the B<CAP_SYS_TTY_CONFIG> capability is required.
fr: Le processus appelant n'a pas les privilèges suffisants pour appeler B<vhangup>()\ ; la capacité B<CAP_SYS_TTY_CONFIG> est requise.

note: type: Plain text
en: This call is Linux-specific, and should not be used in programs intended to be portable.
fr: Cet appel système est spécifique à Linux et ne devrait pas être employé dans des programmes destinés à être portables.
