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

NOM

       open,  creat  -  Ouvrir  ou  creer  eventuellement  un  fichier  ou  un
       peripherique

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

       Etant  donne  le  chemin  pathname  d'un  fichier,  open()  renvoie  un
       descripteur de fichier (petit entier positif ou nul) qui pourra ensuite
       etre utilise dans d'autres appels systeme (read(2), write(2), lseek(2),
       fcntl(2),  etc.). Le descripteur de fichier renvoye par un appel reussi
       sera le plus petit descripteur de fichier non actuellement  ouvert  par
       le processus.

       Par defaut, le nouveau descripteur de fichier est configure pour rester
       ouvert apres un appel a execve(2) (son attribut FD_CLOEXEC decrit  dans
       fcntl(2) est initialement desactive). L'attribut O_CLOEXEC specifique a
       Linux et decrit ci-dessous  permet  de  modifier  ce  comportement  par
       defaut.  La  position  dans  le  fichier  est fixee au debut du fichier
       (consultez lseek(2)).

       Un appel a open() cree une nouvelle description de fichier ouvert,  une
       entree  dans  la  table  de  fichiers  ouverts du systeme. Cette entree
       enregistre la position dans le  fichier  et  les  attributs  d'etat  du
       fichier   (modifiables   par   l'operation  F_SETFL  de  fcntl(2)).  Un
       descripteur de fichier est une reference a l'une de ces entrees ; cette
       reference  n'est  pas  modifiee  si  pathname  est  ensuite supprime ou
       modifie pour correspondre a un autre fichier. La  nouvelle  description
       de   fichier  ouvert  n'est  initialement  partagee  avec  aucun  autre
       processus, mais ce partage peut apparaitre apres un fork(2).

       Le parametre flags est l'un des elements O_RDONLY, O_WRONLY  ou  O_RDWR
       qui  reclament  respectivement l'ouverture du fichier en lecture seule,
       ecriture seule, ou lecture/ecriture.

       De plus, zero ou plus d'attributs de creation de fichier et d'attributs
       d'etat de fichier peuvent etre specifies dans flags avec un OU binaire.
       Les attributs de creation de fichier sont O_CREAT, O_EXCL, O_NOCTTY  et
       O_TRUNC. Les attributs d'etat de fichier sont tous les autres attributs
       listes ci-dessous. La distinction entre ces deux groupes  est  que  les
       attributs  d'etat  de  fichier  peuvent etre lus et (dans certains cas)
       modifies avec fcntl(2). La liste complete des attributs de creation  et
       d'etat de fichier est la suivante :

       O_APPEND
              Le  fichier  est  ouvert  en  mode << ajout >>. Initialement, et
              avant chaque write(2), la tete de lecture/ecriture est placee  a
              la  fin  du  fichier  comme  avec  lseek(2).  Il  y  a un risque
              d'endommager le fichier lorsque O_APPEND  est  utilise,  sur  un
              systeme   de   fichiers  NFS,  si  plusieurs  processus  tentent
              d'ajouter des donnees simultanement au meme fichier. Ceci est du
              au  fait  que NFS ne supporte pas l'operation d'ajout de donnees
              dans un fichier, aussi le noyau  du  client  est  oblige  de  la
              simuler, avec un risque de concurrence des taches.

       O_ASYNC
              Declencher  un  signal  (SIGIO par defaut, mais peut etre change
              via  fcntl(2))  lorsque  la  lecture  ou  l'ecriture  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 details.

       O_CLOEXEC (Depuis Linux 2.6.23)
              Activer   l'attribut   << close-on-exec >>   pour   le   nouveau
              descripteur de fichier.  Specifier  cet  attribut  permet  a  un
              programme  d'eviter  des  operations  supplementaires F_SETFD de
              fcntl(2)  pour  positionner  l'attribut  FD_CLOEXEC.  De   plus,
              l'utilisation  de  cet  attribut  est  essentielle dans certains
              programmes multithreades puisque l'utilisation  d'une  operation
              F_SETFD  de  fcntl(2)  pour positionner l'attribut FD_CLOEXEC ne
              suffit pas pour eviter les conditions de  concurrence  lorsqu'un
              thread ouvre un descripteur de fichier en meme temps qu'un autre
              thread effectue un fork(2) plus un execve(2).

       O_CREAT
              Creer le fichier s'il  n'existe  pas.  Le  possesseur  (UID)  du
              fichier  est  renseigne  avec  l'UID  effectif  du processus. Le
              groupe proprietaire (GID) du fichier  est  le  GID  effectif  du
              processus ou le GID du repertoire parent (ceci depend du systeme
              de fichiers, des options  de  montage,  du  mode  du  repertoire
              parent,  etc.)  Consultez  par  exemple  les  options de montage
              bsdgroups et sysvgroups decrites dans la page mount(8)).

              Le parametre mode indique  les  permissions  a  utiliser  si  un
              nouveau  fichier  est  cree. Ce parametre doit etre fourni quand
              O_CREAT est specifie dans  les  flags ;  si  O_CREAT  n'est  pas
              precise,  mode  est  ignore.  Les  permissions  effectives  sont
              modifiees par  le  umask  du  processus :  la  veritable  valeur
              utilisee  est  (mode & ~umask).  Notez que ce mode ne s'applique
              qu'aux acces ulterieurs au fichier  nouvellement  cree.  L'appel
              open()  qui  cree  un  fichier dont le mode est en lecture seule
              fournira quand meme un descripteur  de  fichier  en  lecture  et
              ecriture.

              Les  constantes  symboliques  suivantes  sont  disponibles  pour
              mode :

              S_IRWXU  00700 L'utilisateur (proprietaire  du  fichier)  a  les
                       autorisations de lecture, ecriture, execution.

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

              S_IWUSR  00200 L'utilisateur a l'autorisation d'ecriture.

              S_IXUSR  00100 L'utilisateur a l'autorisation d'execution.

              S_IRWXG  00070   Le  groupe  a  les  autorisations  de  lecture,
                       ecriture, execution.

              S_IRGRP  00040 Le groupe a l'autorisation de lecture.

              S_IWGRP  00020 Le groupe a l'autorisation d'ecriture.

              S_IXGRP  00010 Le groupe a l'autorisation d'execution.

              S_IRWXO  00007 Tout le monde a  les  autorisations  de  lecture,
                       ecriture, execution.

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

              S_IWOTH  00002 Tout le monde a l'autorisation d'ecriture.

              S_IXOTH  00001 Tout le monde a l'autorisation d'execution.

       O_DIRECT (Depuis Linux 2.4.10)
              Essayer  de minimiser les effets du cache d'entree-sortie sur ce
              fichier. Ceci degradera en general les  performances,  mais  est
              utilise  dans des situations speciales, lorsque les applications
              ont leur propres caches. L'ajout du drapeau  O_DIRECT  fait  que
              les  entrees-sorties  sont synchrones ; en realite un effort est
              fait pour rendre le transfert synchrone mais cela ne done pas la
              garantie  fournie  par  le  drapeau  O_SYNC  que  les donnees et
              meta-donnees sont transferees. Pour garantir des entrees-sorties
              synchrones,  le  drapeau  O_SYNC  doit  etre  utilise en plus du
              drapeau O_DIRECT. Consultez la section NOTES ci-dessous.

              Une interface a la semantique similaire  (mais  depreciee)  pour
              les peripheriques blocs est decrite a la page raw(8).

       O_DIRECTORY
              Si  pathname  n'est  pas  un repertoire, l'ouverture echoue. Cet
              attribut est specifique a Linux et fut ajoute  dans  la  version
              2.1.126 du noyau, pour eviter des problemes de dysfonctionnement
              si opendir(3) est invoque sur une FIFO  ou  un  peripherique  de
              bande.  Cet attribut ne devrait jamais etre utilise ailleurs que
              dans l'implementation de opendir(3).

       O_EXCL S'assurer que cet appel cree le fichier : si  cet  attribut  est
              specifie  en  conjonction avec O_CREAT et si le fichier pathname
              existe deja, open() echouera.

              Lorsque ces deux attributs sont specifies, les liens symboliques
              ne  sont pas suivis : si pathname est un lien symbolique, open()
              echouera quelque soit l'endroit ou pointe le lien symbolique.

              En general, le comportement de O_EXCL est indetermine  s'il  est
              utilise  sans  O_CREAT.  Il  existe  une exception toutefois : a
              partir de Linux 2.6, O_EXCL peut etre utilise  sans  O_CREAT  si
              pathname   fait   reference   a  un  peripherique  bloc.  Si  le
              peripherique bloc est utilise par le systeme (par exemple,  s'il
              est monte), open() echoue avec l'erreur EBUSY.

              Sur  les  systemes  de fichiers NFS, O_EXCL n'est pris en charge
              qu'avec la version NFSv3 ou ulterieure, sur les  noyaux  2.6  ou
              plus  recents. Dans les environnements NFS ou la prise en charge
              d'O_EXCL n'est pas fournie, les programmes  qui  ont  besoin  de
              cette  fonctionnalite  pour  verrouiller  des taches 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
              eviter  la  dependance  de  la  prise  en charge NFS pour O_EXCL
              peuvent creer un fichier unique sur le meme systeme de  fichiers
              (par  exemple,  avec  le  PID  et le nom de l'hote), et utiliser
              link(2) pour creer un lien sur un fichier  de  verrouillage.  Si
              link(2)  renvoie  0, le verrouillage est reussi. Sinon, utiliser
              stat(2) sur ce fichier unique pour  verifier  si  le  nombre  de
              liens  a  augmente  jusqu'a  2,  auquel  cas le verrouillage est
              egalement reussi.pour verifier si le nombre de liens a  augmente
              jusqu'a 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
              etre representee  dans  un  off_t  (mais  peut  l'etre  dans  un
              off64_t).  La macro _LARGEFILE64_SOURCE doit etre definie (avant
              d'inclure tout fichier d'en-tete) pour obtenir cette definition.
              Fixer la macro _FILE_OFFSET_BITS a 64 est la methode a favoriser
              pour acceder a des grands fichiers sur  des  systemes  32  bits,
              plutot      que      d'utiliser      O_LARGEFILE      (consultez
              feature_test_macros(7)).

       O_NOATIME (Depuis Linux 2.6.8)
              Ne pas mettre a jour l'heure de dernier acces au fichier  (champ
              st_atime  de  l'inoeud) quand le fichier est lu avec read(2). Ce
              attribut est seulement concu pour les programmes d'indexation et
              d'archivage,  pour  lesquels  il  peut reduire significativement
              l'activite du disque. L'attribut peut ne pas etre  effectif  sur
              tous  les  systemes  de fichiers. Par exemple, avec NFS, l'heure
              d'acces est mise a jour par le serveur.

       O_NOCTTY
              Si  pathname  correspond  a  un  peripherique  de  terminal   --
              consultez  tty(4) --, il ne deviendra pas le terminal controlant
              le processus meme  si  celui-ci  n'est  attache  a  aucun  autre
              terminal.

       O_NOFOLLOW
              Si pathname est un lien symbolique, l'ouverture echoue. Ceci est
              une extension FreeBSD, qui fut ajoutee a Linux dans  la  version
              2.1.126.  Les  liens  symboliques  se  trouvant  dans  le chemin
              d'acces 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 operation ulterieure sur ce fichier ne
              laissera le processus appelant en attente. Pour la  manipulation
              des  FIFO  (tubes  nommes),  voir  egalement  fifo(7).  Pour une
              explication de l'effet de O_NONBLOCK  en  conjonction  avec  les
              verrouillages imperatifs et les baux de fichiers, voir fcntl(2).

       O_SYNC Le  fichier  est ouvert en ecriture synchronisee. Chaque appel a
              write(2) sur le fichier bloquera le processus  appelant  jusqu'a
              ce que les donnees aient ete ecrites physiquement sur le support
              materiel (voir la section NOTES plus bas).

       O_TRUNC
              Si le fichier existe, est un fichier ordinaire, et est ouvert en
              ecriture  (O_RDWR  ou  O_WRONLY), il sera tronque a une longueur
              nulle. Si le fichier est une FIFO ou un  peripherique  terminal,
              l'attribut O_TRUNC est ignore. Sinon, le comportement de O_TRUNC
              n'est pas precise. Sur de nombreuses versions de Linux, il  sera
              ignore ; sur d'autres versions il declenchera une erreur).

       Certains de ces attributs optionnels peuvent etre modifies par la suite
       avec la fonction fcntl(2).

       creat() est equivalent a open() avec l'attribut flags egal a O_CREAT  |
       O_WRONLY | O_TRUNC.

VALEUR RENVOY'EE

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

ERREURS

       EACCES L'acces  demande  au  fichier  est interdit, ou la permission de
              parcours pour  l'un  des  repertoires  du  chemin  pathname  est
              refusee,  ou  le  fichier  n'existe  pas encore et le repertoire
              parent   ne   permet   pas    l'ecriture.    (Consultez    aussi
              path_resolution(7).)

       EEXIST pathname existe deja et O_CREAT et O_EXCL ont ete indiques.

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

       EFBIG  Consultez EOVERFLOW.

       EINTR  Pendant  qu'il  etait  bloque  en  attente  de  l'ouverture d'un
              peripherique lent (par exemple, une FIFO ;  consultez  fifo(7)),
              l'appel  a  ete  interrompu  par  un  gestionnaire  de  signal ;
              consultez signal(7).

       EISDIR On a demande une ecriture alors que  pathname  correspond  a  un
              repertoire (en fait, O_WRONLY ou O_RDWR ont ete demandes).

       ELOOP  Trop  de  liens  symboliques  ont  ete  rencontres en parcourant
              pathname, ou l'attribut O_NOFOLLOW est indique et  pathname  est
              un lien symbolique.

       EMFILE Le processus a deja ouvert le nombre maximal de fichiers.

       ENAMETOOLONG
              pathname est trop long.

       ENFILE La  limite  du nombre total de fichiers ouverts sur le systeme a
              ete atteinte.

       ENODEV pathname correspond a un fichier special et  il  n'y  a  pas  de
              peripherique  correspondant. (Ceci est un bogue du noyau Linux ;
              dans cette situation, ENXIO devrait etre renvoye.)

       ENOENT O_CREAT est absent et le fichier n'existe pas. Ou un  repertoire
              du  chemin  d'acces  pathname  n'existe  pas,  ou  est  un  lien
              symbolique pointant nulle part.

       ENOMEM Pas assez de memoire pour le noyau.

       ENOSPC pathname devrait etre cree mais  le  peripherique  concerne  n'a
              plus assez de place pour un nouveau fichier.

       ENOTDIR
              Un  element  du chemin d'acces pathname n'est pas un repertoire,
              ou l'attribut O_DIRECTORY est utilise et pathname n'est  pas  un
              repertoire.

       ENXIO  O_NONBLOCK | O_WRONLY est indique, le fichier est une FIFO et le
              processus n'a pas de fichier ouvert en lecture.  Ou  le  fichier
              est   un   noeud  special  et  il  n'y  a  pas  de  peripherique
              correspondant.

       EOVERFLOW
              pathname fait reference a un  fichier  ordinaire  qui  est  trop
              grand  pour  etre  ouvert.  Cela  arrive  quand  une application
              compilee sur une plate-forme 32 bits sans -D_FILE_OFFSET_BITS=64
              essaie  d'ouvrir  un  fichier  dont  la taille depasse (2<<31)-1
              bits ; consultez egalement O_LARGEFILE ci-dessus. C'est l'erreur
              specifiee  par  POSIX.1-2001 ;  dans  les noyaux anterieurs a la
              version 2.6.24, Linux fournissait l'erreur EFBIG dans ce cas.

       EPERM  L'attribut  O_NOATIME  est  indique,  mais  l'UID  effectif   de
              l'appelant  n'est  pas le proprietaire du fichier, et l'appelant
              n'est pas privilegie (CAP_FOWNER).

       EROFS  Un acces en ecriture est demande alors que pathname  reside  sur
              un systeme de fichiers en lecture seule.

       ETXTBSY
              On  a  demande  une  ecriture alors que pathname correspond a un
              fichier executable actuellement utilise.

       EWOULDBLOCK
              L'attribut O_NONBLOCK est indique, et un bail  incompatible  est
              detenu sur le fichier (consultez fcntl(2)).

CONFORMIT'E

       SVr4,  BSD 4.3,  POSIX.1-2001.  Les attributs O_DIRECTORY, O_NOATIME et
       O_NOFOLLOW  sont  specifiques  a  Linux;  il  faut  definir  la   macro
       _GNU_SOURCE  (avant  d'inclure tout fichier d'en-tete) pour avoir leurs
       definitions.

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

       O_DIRECT  n'est  pas  specifie  par  POSIX ;  il  faut definir la macro
       _GNU_SOURCE (avant d'inclure tout fichier d'en-tete)  pour  obtenir  sa
       definition.

NOTES

       Sous Linux, le drapeau O_NONBLOCK indique que l'on veut ouvrir mais pas
       necessairement dans l'intention de lire ou d'ecrire. Il est typiquement
       utilise  pour  ouvrir  des  peripheriques  dans  le but de recuperer un
       descripteur de fichier pour l'utiliser avec ioctl(2).

       Contrairement aux autres valeurs qui peuvent etre indiquees dans flags,
       les  valeurs  du  mode d'acc`es O_RDONLY, O_WRONLY et O_RDWR ne sont pas
       des bits individuels. Ils definissent 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  meme  signification que O_RDWR. Linux reserve le
       mode d'acces, particulier et non standard, mode 3  (11  en  binaire)  a
       flags   pour   signifier :  verifier  les  permissions  de  lecture  et
       d'ecriture du fichier et renvoyer un  descripteur  de  fichier  qui  ne
       pourra  pas  etre  utilise  pour  une  lecture ou une ecriture. Ce mode
       d'acces non standard  est  utilise  par  certains  pilotes  Linux  pour
       renvoyer  un  descripteur  qui  ne  sera utilise que par des operations
       ioctl(2) specifiques au peripherique.

       L'effet (indefini) de O_RDONLY | O_TRUNC varie selon  l'implementation.
       Sur de nombreux systemes, le fichier est effectivement tronque.

       Plusieurs  problemes  se posent avec le protocole NFS, concernant entre
       autres O_SYNC, et O_NDELAY .

       POSIX  fournit  trois   variantes   differentes   des   entrees-sorties
       synchronisees,  correspondant  aux drapeaux O_SYNC, O_DSYNC et O_RSYNC.
       Actuellement (2.63.31), Linux  implemente  seulement  O_SYNC,  mais  la
       glibc  definit  O_DSYNC  et  O_RSYNC  a  la  meme valeur que O_SYNC. La
       plupart des systemes de fichiers Linux n'implementent en  fait  pas  la
       semantique  O_SYNC  de  POSIX  (qui  demande  que  les mises a jour des
       metadonnees d'une ecriture soient sur  le  disque  lors  du  retour  en
       espace  utilisateur),  mais  la  semantique  O_DSYNC  (qui  ne  demande
       uniquement que les donnees des fichiers et les metadonnees  necessaires
       pour  les  retrouvees  soit  sur le disque au moment ou l'appel systeme
       rend la main).

       Notez que open() peut ouvrir des fichiers speciaux mais creat() ne peut
       pas en creer, il faut utiliser mknod(2) a la place.

       Sur  les  systemes  de  fichiers  NFS,  ou  la correspondance d'UID est
       activee, open() peut renvoyer un descripteur de  fichier  alors  qu'une
       requete  read(2) par exemple sera refusee avec le code d'erreur EACCES.
       En effet, le client a effectue open() en  verifiant  les  autorisations
       d'acces,  mais  la  correspondance d'UID est calculee par le serveur au
       moment des requetes de lecture ou d'ecriture.

       Si un fichier est cree, ses horodatages  st_atime,  st_ctime,  st_mtime
       (respectivement  heure  de  dernier  acces,  de  derniere  modification
       d'etat, et de derniere modification ; consultez stat(2)) sont  fixes  a
       l'heure  actuelle,  ainsi  que  les  champs  st_ctime  et  st_mtime  du
       repertoire parent.  Sinon,  si  le  fichier  est  modifie  a  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 deplacements dans les entrees-sorties  de  fichiers.
       Sous  Linux,  les  restrictions  d'alignement  varient  en  fonction du
       systeme 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
       independante du systeme de fichiers qui permette  aux  applications  de
       decouvrir  ces  restrictions  pour  un  fichier  ou systeme de fichiers
       donne. Certains systemes de fichiers fournissent leur propre  interface
       pour  faire  cela,  comme  par  exemple  l'operation 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 etre des multiples de la taille de
       blocs logiques du systeme de fichiers. Sous Linux  2.6,  un  alignement
       sur des multiples de 512 octets est suffisant.

       L'attribut   O_DIRECT   a  ete  introduit  par  SGI  IRIX,  qui  a  des
       restrictions d'alignement identiques a Linux 2.4. IRIX a aussi un appel
       fcntl(2)  pour  obtenir  les alignements et tailles appropries. FreeBSD
       4.x a introduit un attribut du meme nom,  mais  sans  les  restrictions
       d'alignement.

       La  gestion de O_DIRECT a ete ajoute dans Linux 2.4.10. Les noyaux plus
       anciens ignorent simplement cet attribut. Certains systeme de  fichiers
       peuvent  ne pas supporter cet attribut et open() echouera avec l'erreur
       EINVAL s'il a ete utilise.

       Les applications  devraient  eviter  de  melanger  des  entrees-sorties
       O_DIRECT  et  normales  pour  le  meme  fichier, en particulier sur des
       regions d'un meme fichier qui se recouvrent.  Meme  si  le  systeme  de
       fichiers gere les problemes de coherence dans cette situation, le debit
       global d'entrees-sorties  sera  moindre  que  si  un  seul  mode  etait
       utilise.  De  la  meme  facon,  les  applications  devraient  eviter de
       melanger l'utilisation de mmap(2) et  d'entrees-sorties  directes  pour
       les memes fichiers.

       Le  comportement  de O_DIRECT avec NFS differe des systemes de fichiers
       locaux. Les anciens noyaux, ou les  noyaux  configures  d'une  certaine
       facon, peuvent ne pas gerer cette combinaison. Le protocole NFS ne gere
       pas le passage de l'attribut au serveur, les  entrees-sorties  O_DIRECT
       ne  font  donc  que  le  cache  des pages du client ; le serveur pourra
       toujours utiliser un cache pour les entrees-sorties. Le client  demande
       au  serveur  de rendre les entrees-sorties synchrones pour preserver la
       semantique synchrone de O_DIRECT. Certains  serveurs  fonctionnent  mal
       dans  ces  circonstances,  tout particulierement si les entrees-sorties
       sont de petite taille. Certains serveurs peuvent aussi etre  configures
       pour mentir aux clients et indiquer que les entrees-sorties ont atteint
       un espace de stockage stable ; ceci evitera la perte de performance  en
       augmentant  les risques pour l'integrite des donnees en cas de probleme
       d'alimentation du serveur. Le client NFS Linux n'a pas  de  restriction
       d'alignement pour les entrees-sorties O_DIRECT.

       En resume, O_DIRECT est un outil potentiellement puissant qui doit etre
       utilise avec precaution. Les applications devraient  utiliser  O_DIRECT
       comme  une  option  pour  ameliorer  les performances, qui devrait etre
       desactivee par defaut.

              << Ce qui m'a toujours  derange  avec  O_DIRECT  est  que  toute
              l'interface  est  stupide  et  a  probablement ete concue par un
              singe  derange,  sous  l'influence  de  substances  psychotropes
              puissantes >>. -- Linus.

BOGUES

       Actuellement,  il  n'est  pas  possible  d'activer  les entrees-sorties
       controlees 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      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   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'equipe francophone de traduction de Debian (2006-2009).

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

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.