Provided by: manpages-fr-dev_3.32d0.2p4-1_all bug

NOM

       open, creat - Ouvrir ou créer éventuellement un fichier ou un périphérique

SYNOPSIS

       #include <sys/types.h>
       #include <sys/stat.h>
       #include <fcntl.h>

       int open(const char *pathname, int flags);
       int open(const char *pathname, int flags, mode_t mode);

       int creat(const char *pathname, mode_t mode);

DESCRIPTION

       Étant  donné  le  chemin  pathname  d'un fichier, open() renvoie un descripteur de fichier
       (petit entier positif ou nul) qui pourra ensuite être utilisé dans d'autres appels système
       (read(2),  write(2),  lseek(2),  fcntl(2), etc.). Le descripteur de fichier renvoyé par un
       appel réussi sera le plus petit descripteur de fichier  non  actuellement  ouvert  par  le
       processus.

       Par  défaut,  le  nouveau descripteur de fichier est configuré pour rester ouvert après un
       appel  à  execve(2)  (son  attribut  FD_CLOEXEC  décrit  dans  fcntl(2)  est  initialement
       désactivé).  L'attribut  O_CLOEXEC  spécifique  à  Linux  et  décrit  ci-dessous permet de
       modifier ce comportement par défaut. La position dans le fichier est  fixée  au  début  du
       fichier (consultez lseek(2)).

       Un  appel  à  open()  crée  une nouvelle description de fichier ouvert, une entrée dans la
       table de fichiers ouverts du système. Cette entrée enregistre la position dans le  fichier
       et  les  attributs d'état du fichier (modifiables par l'opération F_SETFL de fcntl(2)). Un
       descripteur de fichier est une référence à l'une de ces entrées ;  cette  référence  n'est
       pas  modifiée  si  pathname  est  ensuite supprimé ou modifié pour correspondre à un autre
       fichier. La nouvelle description de fichier ouvert n'est initialement partagée avec  aucun
       autre processus, mais ce partage peut apparaître après un fork(2).

       Le  paramètre  flags  est  l'un  des  éléments  O_RDONLY, O_WRONLY ou O_RDWR qui réclament
       respectivement  l'ouverture  du   fichier   en   lecture   seule,   écriture   seule,   ou
       lecture/écriture.

       De  plus, zéro ou plus d'attributs de création de fichier et d'attributs d'état de fichier
       peuvent être spécifiés dans flags avec un OU binaire. Les attributs de création de fichier
       sont  O_CREAT,  O_EXCL, O_NOCTTY et O_TRUNC. Les attributs d'état de fichier sont tous les
       autres attributs listés ci‐dessous. La distinction entre ces  deux  groupes  est  que  les
       attributs  d'état  de  fichier  peuvent  être  lus  et  (dans  certains cas) modifiés avec
       fcntl(2). La liste complète des  attributs  de  création  et  d'état  de  fichier  est  la
       suivante :

       O_APPEND
              Le fichier est ouvert en mode « ajout ». Initialement, et avant chaque write(2), la
              tête de lecture/écriture est placée à la fin du fichier comme avec lseek(2). Il y a
              un  risque  d'endommager le fichier lorsque O_APPEND est utilisé, sur un système de
              fichiers NFS, si plusieurs processus tentent d'ajouter des données simultanément au
              même  fichier.  Ceci  est dû au fait que NFS ne supporte pas l'opération d'ajout de
              données dans un fichier, aussi le noyau du client est obligé de la simuler, avec un
              risque de concurrence des tâches.

       O_ASYNC
              Déclencher un signal (SIGIO par défaut, mais peut être changé via fcntl(2)) lorsque
              la lecture ou l'écriture  deviennent  possibles  sur  ce  descripteur.  Ceci  n'est
              possible  que  pour  les  terminaux, pseudoterminaux, sockets et (depuis Linux 2.6)
              tubes et FIFO. Consultez fcntl(2) pour plus de détails.

       O_CLOEXEC (Depuis Linux 2.6.23)
              Activer l'attribut  « close-on-exec »  pour  le  nouveau  descripteur  de  fichier.
              Spécifier   cet   attribut   permet   à   un   programme  d'éviter  des  opérations
              supplémentaires F_SETFD de fcntl(2)  pour  positionner  l'attribut  FD_CLOEXEC.  De
              plus,  l'utilisation  de  cet  attribut  est  essentielle  dans certains programmes
              multithreadés puisque  l'utilisation  d'une  opération  F_SETFD  de  fcntl(2)  pour
              positionner  l'attribut  FD_CLOEXEC  ne  suffit  pas  pour éviter les conditions de
              concurrence lorsqu'un thread ouvre un descripteur de fichier en  même  temps  qu'un
              autre thread effectue un fork(2) plus un execve(2).

       O_CREAT
              Créer  le  fichier  s'il n'existe pas. Le possesseur (UID) du fichier est renseigné
              avec l'UID effectif du processus. Le groupe propriétaire (GID) du  fichier  est  le
              GID effectif du processus ou le GID du répertoire parent (ceci dépend du système de
              fichiers, des options de montage, du mode du répertoire parent, etc.) Consultez par
              exemple  les  options  de  montage  bsdgroups  et  sysvgroups décrites dans la page
              mount(8)).

              Le paramètre mode indique les permissions à utiliser  si  un  nouveau  fichier  est
              créé.  Ce paramètre doit être fourni quand O_CREAT est spécifié dans les flags ; si
              O_CREAT n'est pas  précisé,  mode  est  ignoré.  Les  permissions  effectives  sont
              modifiées   par   le   umask  du  processus :  la  véritable  valeur  utilisée  est
              (mode & ~umask). Notez que ce mode ne s'applique qu'aux accès ultérieurs au fichier
              nouvellement  créé.  L'appel open() qui crée un fichier dont le mode est en lecture
              seule fournira quand même un descripteur de fichier en lecture et écriture.

              Les constantes symboliques suivantes sont disponibles pour mode :

              S_IRWXU  00700 L'utilisateur (propriétaire  du  fichier)  a  les  autorisations  de
                       lecture, écriture, exécution.

              S_IRUSR  00400 L'utilisateur a l'autorisation de lecture.

              S_IWUSR  00200 L'utilisateur a l'autorisation d'écriture.

              S_IXUSR  00100 L'utilisateur a l'autorisation d'exécution.

              S_IRWXG  00070 Le groupe a les autorisations de lecture, écriture, exécution.

              S_IRGRP  00040 Le groupe a l'autorisation de lecture.

              S_IWGRP  00020 Le groupe a l'autorisation d'écriture.

              S_IXGRP  00010 Le groupe a l'autorisation d'exécution.

              S_IRWXO  00007 Tout le monde a les autorisations de lecture, écriture, exécution.

              S_IROTH  00004 Tout le monde a l'autorisation de lecture.

              S_IWOTH  00002 Tout le monde a l'autorisation d'écriture.

              S_IXOTH  00001 Tout le monde a l'autorisation d'exécution.

       O_DIRECT (Depuis Linux 2.4.10)
              Essayer  de  minimiser  les  effets  du  cache d'entrée-sortie sur ce fichier. Ceci
              dégradera en général  les  performances,  mais  est  utilisé  dans  des  situations
              spéciales,  lorsque  les  applications  ont leur propres caches. L'ajout du drapeau
              O_DIRECT fait que les entrées-sorties sont synchrones ; en réalité  un  effort  est
              fait  pour  rendre le transfert synchrone mais cela ne done pas la garantie fournie
              par le drapeau O_SYNC que  les  données  et  méta-données  sont  transférées.  Pour
              garantir  des  entrées-sorties  synchrones,  le drapeau O_SYNC doit être utilisé en
              plus du drapeau O_DIRECT. Consultez la section NOTES ci-dessous.

              Une interface à la sémantique similaire (mais  dépréciée)  pour  les  périphériques
              blocs est décrite à la page raw(8).

       O_DIRECTORY
              Si  pathname  n'est  pas  un  répertoire,  l'ouverture  échoue.  Cet  attribut  est
              spécifique à Linux et fut ajouté dans la version 2.1.126 du noyau, pour éviter  des
              problèmes  de  dysfonctionnement  si  opendir(3)  est  invoqué  sur  une FIFO ou un
              périphérique de bande. Cet attribut ne devrait jamais  être  utilisé  ailleurs  que
              dans l'implémentation de opendir(3).

       O_EXCL S'assurer  que  cet  appel  crée  le  fichier :  si  cet  attribut  est spécifié en
              conjonction avec O_CREAT et si le fichier pathname existe déjà, open() échouera.

              Lorsque ces deux attributs sont  spécifiés,  les  liens  symboliques  ne  sont  pas
              suivis : si pathname est un lien symbolique, open() échouera quelque soit l'endroit
              où pointe le lien symbolique.

              En général, le comportement  de  O_EXCL  est  indéterminé  s'il  est  utilisé  sans
              O_CREAT.  Il  existe  une  exception toutefois : à partir de Linux 2.6, O_EXCL peut
              être utilisé sans O_CREAT si pathname fait référence à un périphérique bloc. Si  le
              périphérique  bloc est utilisé par le système (par exemple, s'il est monté), open()
              échoue avec l'erreur EBUSY.

              Sur les systèmes de fichiers NFS, O_EXCL n'est pris en charge  qu'avec  la  version
              NFSv3  ou  ultérieure,  sur les noyaux 2.6 ou plus récents. Dans les environnements
              NFS où la prise en charge d'O_EXCL n'est pas fournie, les programmes qui ont besoin
              de  cette  fonctionnalité  pour  verrouiller  des tâches risquent de rencontrer une
              concurrence  critique  (race  condition).  Les  programmes  portables  qui  veulent
              effectuer  un  verrouillage  fichier atomique en utilisant un fichier verrou et qui
              doivent éviter la dépendance de la prise en charge NFS pour O_EXCL peuvent créer un
              fichier  unique sur le même système de fichiers (par exemple, avec le PID et le nom
              de l'hôte), et utiliser link(2) pour créer un lien sur un fichier de  verrouillage.
              Si  link(2)  renvoie  0, le verrouillage est réussi. Sinon, utiliser stat(2) sur ce
              fichier unique pour vérifier si le nombre de liens a augmenté jusqu'à 2, auquel cas
              le verrouillage est également réussi.pour vérifier si le nombre de liens a augmenté
              jusqu'à 2. Ne pas utiliser la valeur de retour de link(2).

       O_LARGEFILE
              (LFS) Permet d'ouvrir des fichiers dont la taille ne peut pas être représentée dans
              un off_t (mais peut l'être dans un off64_t). La macro _LARGEFILE64_SOURCE doit être
              définie (avant d'inclure tout fichier d'en‐tête)  pour  obtenir  cette  définition.
              Fixer la macro _FILE_OFFSET_BITS à 64 est la méthode à favoriser pour accéder à des
              grands fichiers sur  des  systèmes  32  bits,  plutôt  que  d'utiliser  O_LARGEFILE
              (consultez feature_test_macros(7)).

       O_NOATIME (Depuis Linux 2.6.8)
              Ne  pas  mettre  à  jour  l'heure  de  dernier  accès au fichier (champ st_atime de
              l'inœud) quand le fichier est lu avec read(2). Ce attribut est seulement conçu pour
              les   programmes  d'indexation  et  d'archivage,  pour  lesquels  il  peut  réduire
              significativement l'activité du disque. L'attribut peut ne pas  être  effectif  sur
              tous  les  systèmes  de fichiers. Par exemple, avec NFS, l'heure d'accès est mise à
              jour par le serveur.

       O_NOCTTY
              Si pathname correspond à un périphérique de terminal — consultez tty(4)  —,  il  ne
              deviendra  pas le terminal contrôlant le processus même si celui-ci n'est attaché à
              aucun autre terminal.

       O_NOFOLLOW
              Si pathname est un lien symbolique, l'ouverture  échoue.  Ceci  est  une  extension
              FreeBSD,  qui fut ajoutée à Linux dans la version 2.1.126. Les liens symboliques se
              trouvant dans le chemin d'accès proprement dit seront suivis normalement.

       O_NONBLOCK ou O_NDELAY
              Le fichier est ouvert en mode « non-bloquant ». Ni la  fonction  open()  ni  aucune
              autre  opération  ultérieure  sur  ce  fichier ne laissera le processus appelant en
              attente. Pour la manipulation des FIFO (tubes nommés), voir également fifo(7). Pour
              une  explication  de  l'effet  de  O_NONBLOCK en conjonction avec les verrouillages
              impératifs et les baux de fichiers, voir fcntl(2).

       O_SYNC Le fichier est ouvert en écriture synchronisée. Chaque  appel  à  write(2)  sur  le
              fichier bloquera le processus appelant jusqu'à ce que les données aient été écrites
              physiquement sur le support matériel (voir la section NOTES plus bas).

       O_TRUNC
              Si le fichier existe, est un fichier ordinaire, et est ouvert en  écriture  (O_RDWR
              ou  O_WRONLY),  il sera tronqué à une longueur nulle. Si le fichier est une FIFO ou
              un périphérique terminal, l'attribut O_TRUNC est ignoré. Sinon, le comportement  de
              O_TRUNC  n'est  pas  précisé. Sur de nombreuses versions de Linux, il sera ignoré ;
              sur d'autres versions il déclenchera une erreur).

       Certains de ces attributs optionnels peuvent être modifiés par la suite avec  la  fonction
       fcntl(2).

       creat() est équivalent à open() avec l'attribut flags égal à O_CREAT | O_WRONLY | O_TRUNC.

VALEUR RENVOYÉE

       open()  et  creat()  renvoient  le nouveau descripteur de fichier s'ils réussissent, ou -1
       s'ils échouent, auquel cas errno contient le code d'erreur.

ERREURS

       EACCES L'accès demandé au fichier est interdit, ou la permission de parcours pour l'un des
              répertoires du chemin pathname est refusée, ou le fichier n'existe pas encore et le
              répertoire parent ne permet pas l'écriture. (Consultez aussi path_resolution(7).)

       EEXIST pathname existe déjà et O_CREAT et O_EXCL ont été indiqués.

       EFAULT pathname pointe en‐dehors de l'espace d'adressage accessible.

       EFBIG  Consultez EOVERFLOW.

       EINTR  Pendant qu'il était bloqué en attente de l'ouverture d'un  périphérique  lent  (par
              exemple,   une   FIFO ;  consultez  fifo(7)),  l'appel  a  été  interrompu  par  un
              gestionnaire de signal ; consultez signal(7).

       EISDIR On a demandé une écriture alors que pathname correspond à un répertoire  (en  fait,
              O_WRONLY ou O_RDWR ont été demandés).

       ELOOP  Trop  de liens symboliques ont été rencontrés en parcourant pathname, ou l'attribut
              O_NOFOLLOW est indiqué et pathname est un lien symbolique.

       EMFILE Le processus a déjà ouvert le nombre maximal de fichiers.

       ENAMETOOLONG
              pathname est trop long.

       ENFILE La limite du nombre total de fichiers ouverts sur le système a été atteinte.

       ENODEV pathname correspond  à  un  fichier  spécial  et  il  n'y  a  pas  de  périphérique
              correspondant.  (Ceci  est  un  bogue  du noyau Linux ; dans cette situation, ENXIO
              devrait être renvoyé.)

       ENOENT O_CREAT est absent et le fichier n'existe pas. Ou un répertoire du  chemin  d'accès
              pathname n'existe pas, ou est un lien symbolique pointant nulle part.

       ENOMEM Pas assez de mémoire pour le noyau.

       ENOSPC pathname  devrait  être  créé mais le périphérique concerné n'a plus assez de place
              pour un nouveau fichier.

       ENOTDIR
              Un élément du chemin d'accès  pathname  n'est  pas  un  répertoire,  ou  l'attribut
              O_DIRECTORY est utilisé et pathname n'est pas un répertoire.

       ENXIO  O_NONBLOCK  | O_WRONLY est indiqué, le fichier est une FIFO et le processus n'a pas
              de fichier ouvert en lecture. Ou le fichier est un nœud spécial et il n'y a pas  de
              périphérique correspondant.

       EOVERFLOW
              pathname fait référence à un fichier ordinaire qui est trop grand pour être ouvert.
              Cela arrive quand  une  application  compilée  sur  une  plate-forme  32 bits  sans
              -D_FILE_OFFSET_BITS=64  essaie d'ouvrir un fichier dont la taille dépasse (2<<31)-1
              bits ; consultez également O_LARGEFILE  ci-dessus.  C'est  l'erreur  spécifiée  par
              POSIX.1-2001 ;  dans  les  noyaux antérieurs à la version 2.6.24, Linux fournissait
              l'erreur EFBIG dans ce cas.

       EPERM  L'attribut O_NOATIME est indiqué, mais l'UID effectif de l'appelant  n'est  pas  le
              propriétaire du fichier, et l'appelant n'est pas privilégié (CAP_FOWNER).

       EROFS  Un  accès  en  écriture  est  demandé  alors  que pathname réside sur un système de
              fichiers en lecture seule.

       ETXTBSY
              On a demandé une écriture alors que pathname correspond  à  un  fichier  exécutable
              actuellement utilisé.

       EWOULDBLOCK
              L'attribut  O_NONBLOCK  est  indiqué,  et  un  bail  incompatible est détenu sur le
              fichier (consultez fcntl(2)).

CONFORMITÉ

       SVr4, BSD 4.3, POSIX.1-2001. Les  attributs  O_DIRECTORY,  O_NOATIME  et  O_NOFOLLOW  sont
       spécifiques  à  Linux;  il faut définir la macro _GNU_SOURCE (avant d'inclure tout fichier
       d'en‐tête) pour avoir leurs définitions.

       L'attribut O_CLOEXEC n'est pas spécifié dans POSIX.1-2001, mais l'est dans POSIX.1-2008.

       O_DIRECT n'est pas spécifié par POSIX ;  il  faut  définir  la  macro  _GNU_SOURCE  (avant
       d'inclure tout fichier d'en‐tête) pour obtenir sa définition.

NOTES

       Sous  Linux,  le  drapeau  O_NONBLOCK indique que l'on veut ouvrir mais pas nécessairement
       dans l'intention de  lire  ou  d'écrire.  Il  est  typiquement  utilisé  pour  ouvrir  des
       périphériques  dans  le  but  de  récupérer un descripteur de fichier pour l'utiliser avec
       ioctl(2).

       Contrairement aux autres valeurs qui peuvent être indiquées dans  flags,  les  valeurs  du
       mode  d'accès  O_RDONLY,  O_WRONLY  et  O_RDWR  ne  sont  pas  des  bits  individuels. Ils
       définissent l'ordre des deux bits de poids faible de flags, et ont pour valeur  respective
       0,  1 et 2. En d'autres mots, la combinaison O_RDONLY | O_WRONLY est une erreur logique et
       n'a certainement pas la même signification que O_RDWR.  Linux  réserve  le  mode  d'accès,
       particulier  et non standard, mode 3 (11 en binaire) à flags pour signifier : vérifier les
       permissions de lecture et d'écriture du fichier et renvoyer un descripteur de fichier  qui
       ne  pourra pas être utilisé pour une lecture ou une écriture. Ce mode d'accès non standard
       est utilisé par certains pilotes Linux pour renvoyer un descripteur qui  ne  sera  utilisé
       que par des opérations ioctl(2) spécifiques au périphérique.

       L'effet  (indéfini)  de  O_RDONLY  | O_TRUNC varie selon l'implémentation. Sur de nombreux
       systèmes, le fichier est effectivement tronqué.

       Plusieurs problèmes se posent avec le protocole NFS, concernant entre  autres  O_SYNC,  et
       O_NDELAY .

       POSIX fournit trois variantes différentes des entrées-sorties synchronisées, correspondant
       aux  drapeaux  O_SYNC,  O_DSYNC  et  O_RSYNC.  Actuellement  (2.63.31),  Linux  implémente
       seulement O_SYNC, mais la glibc définit O_DSYNC et O_RSYNC à la même valeur que O_SYNC. La
       plupart des systèmes de fichiers Linux n'implémentent en fait pas la sémantique O_SYNC  de
       POSIX  (qui  demande  que  les  mises  à jour des métadonnées d'une écriture soient sur le
       disque lors du retour en espace utilisateur), mais la sémantique O_DSYNC (qui  ne  demande
       uniquement que les données des fichiers et les métadonnées nécessaires pour les retrouvées
       soit sur le disque au moment ou l'appel système rend la main).

       Notez que open() peut ouvrir des fichiers spéciaux mais creat() ne peut pas en  créer,  il
       faut utiliser mknod(2) à la place.

       Sur  les  systèmes  de  fichiers  NFS, où la correspondance d'UID est activée, open() peut
       renvoyer un descripteur de fichier alors qu'une requête read(2) par exemple  sera  refusée
       avec  le  code  d'erreur  EACCES.  En  effet, le client a effectué open() en vérifiant les
       autorisations d'accès, mais la correspondance d'UID est calculée par le serveur au  moment
       des requêtes de lecture ou d'écriture.

       Si un fichier est créé, ses horodatages st_atime, st_ctime, st_mtime (respectivement heure
       de dernier accès, de dernière modification d'état, et de dernière modification ; consultez
       stat(2))  sont  fixés  à  l'heure  actuelle,  ainsi que les champs st_ctime et st_mtime du
       répertoire parent. Sinon, si le fichier est modifié à cause  de  l'attribut  O_TRUNC,  ses
       champs st_ctime et st_mtime sont remplis avec l'heure actuelle.

   O_DIRECT
       L'attribut  O_DIRECT  peut imposer, pour des raisons d'alignement, des restrictions sur la
       longueur et l'adresse des tampons de l'espace utilisateur et  des  déplacements  dans  les
       entrées-sorties de fichiers. Sous Linux, les restrictions d'alignement varient en fonction
       du système de fichiers et de la version du noyau, et il peut aussi  ne  pas  y  en  avoir.
       Cependant,  il  n'y a pas actuellement d'interface indépendante du système de fichiers qui
       permette aux applications de découvrir ces restrictions pour  un  fichier  ou  système  de
       fichiers donné. Certains systèmes de fichiers fournissent leur propre interface pour faire
       cela, comme par exemple l'opération XFS_IOC_DIOINFO de xfsctl(3).

       Sous Linux 2.4, la taille des transferts, l'alignement du tampon et la  position  dans  le
       fichier  doivent être des multiples de la taille de blocs logiques du système de fichiers.
       Sous Linux 2.6, un alignement sur des multiples de 512 octets est suffisant.

       L'attribut O_DIRECT a été introduit par SGI IRIX,  qui  a  des  restrictions  d'alignement
       identiques  à  Linux  2.4.  IRIX a aussi un appel fcntl(2) pour obtenir les alignements et
       tailles appropriés. FreeBSD 4.x a introduit  un  attribut  du  même  nom,  mais  sans  les
       restrictions d'alignement.

       La  gestion  de  O_DIRECT a été ajouté dans Linux 2.4.10. Les noyaux plus anciens ignorent
       simplement cet attribut. Certains  système  de  fichiers  peuvent  ne  pas  supporter  cet
       attribut et open() échouera avec l'erreur EINVAL s'il a été utilisé.

       Les  applications  devraient  éviter  de mélanger des entrées-sorties O_DIRECT et normales
       pour le même fichier, en particulier sur des régions d'un même fichier qui se  recouvrent.
       Même  si  le  système de fichiers gère les problèmes de cohérence dans cette situation, le
       débit global d'entrées-sorties sera moindre que si un seul mode était utilisé. De la  même
       façon,  les  applications  devraient  éviter  de  mélanger  l'utilisation  de  mmap(2)  et
       d'entrées-sorties directes pour les mêmes fichiers.

       Le comportement de O_DIRECT avec NFS diffère des systèmes de fichiers locaux. Les  anciens
       noyaux,  ou  les  noyaux  configurés  d'une  certaine  façon,  peuvent  ne pas gérer cette
       combinaison. Le protocole NFS ne gère  pas  le  passage  de  l'attribut  au  serveur,  les
       entrées-sorties O_DIRECT ne font donc que le cache des pages du client ; le serveur pourra
       toujours utiliser un cache pour les entrées-sorties.  Le  client  demande  au  serveur  de
       rendre  les entrées-sorties synchrones pour préserver la sémantique synchrone de O_DIRECT.
       Certains serveurs fonctionnent mal dans ces circonstances, tout  particulièrement  si  les
       entrées-sorties  sont  de  petite  taille. Certains serveurs peuvent aussi être configurés
       pour mentir aux clients et indiquer que les  entrées-sorties  ont  atteint  un  espace  de
       stockage  stable ;  ceci  évitera  la  perte de performance en augmentant les risques pour
       l'intégrité des données en cas de problème d'alimentation du serveur. Le client NFS  Linux
       n'a pas de restriction d'alignement pour les entrées-sorties O_DIRECT.

       En  résumé,  O_DIRECT  est  un  outil  potentiellement puissant qui doit être utilisé avec
       précaution. Les applications devraient utiliser O_DIRECT comme une option  pour  améliorer
       les performances, qui devrait être désactivée par défaut.

              « Ce  qui  m'a toujours dérangé avec O_DIRECT est que toute l'interface est stupide
              et a probablement été conçue par un singe dérangé, sous l'influence  de  substances
              psychotropes puissantes ». — Linus.

BOGUES

       Actuellement,  il  n'est  pas  possible  d'activer  les entrées-sorties contrôlées par les
       signaux en indiquant O_ASYNC lors de l'appel  open() ;  il  faut  utiliser  fcntl(2)  pour
       activer cet attribut.

VOIR AUSSI

       chmod(2),  chown(2),  close(2),  dup(2),  fcntl(2),  link(2), lseek(2), mknod(2), mmap(2),
       mount(2), openat(2), read(2), socket(2), stat(2), umask(2), unlink(2), write(2), fopen(3),
       fifo(7), path_resolution(7), symlink(7)

COLOPHON

       Cette  page  fait partie de la publication 3.32 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction  francophone  au  sein  du
       projet perkamon <URL:http://perkamon.alioth.debian.org/>.

       Christophe   Blaess   <URL:http://www.blaess.fr/christophe/>   (1996-2003),  Alain  Portal
       <URL:http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».