Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       shm_open,  shm_unlink - Creer/ouvrir et supprimer des objets de memoire
       partages POSIX

SYNOPSIS

       #include <sys/mman.h>
       #include <sys/stat.h>        /* Pour les constantes des modes */
       #include <fcntl.h>           /* Pour les constantes O_* */

       int shm_open(const char *nom, int oflag, mode_t mode);

       int shm_unlink(const char *nom);

       Effectuez l'edition des liens avec l'option -lrt.

DESCRIPTION

       La fonction shm_open() cree et ouvre un nouvel objet de memoire partage
       POSIX,   ou  ouvre  un  objet  existant.  Il  s'agit  d'un  descripteur
       utilisable par d'autres processus avec mmap(2) pour  projeter  la  meme
       region   memoire.   La   fonction   shm_unlink()   realise  l'operation
       complementaire en supprimant l'objet cree precedemment par shm_open().

       Le fonctionnement de shm_open() est analogue a celui  de  open(2).  nom
       indique   l'objet   memoire   partage   a  creer  ou  ouvrir.  Pour  un
       fonctionnement portable, un objet memoire partage doit  etre  identifie
       par  un nom au format /un_nom ; c'est a dire une chaine terminee par un
       caractere  nul  d'au  plus  NAME_MAX  (c'est-a-dire   255)   caractere,
       commencant  par  une  barre  oblique (<< / >>), suivi d'un caractere ou
       plus, ces derniers n'etant pas des barres obliques.

       oflag est un masque de bit associant l'une des deux constantes O_RDONLY
       ou O_RDWR et un ou plusieurs des attributs decrits ci-apres.

       O_RDONLY   Ouvrir l'objet en lecture seule. Un tel objet ne pourra etre
                  projete en memoire avec mmap(2) qu'avec l'acces (PROT_READ).

       O_RDWR     Ouvrir l'objet en lecture et ecriture.

       O_CREAT    Creer  l'objet  de  memoire  partagee  s'il  n'existe   pas.
                  L'utilisateur   et   le   groupe  proprietaires  de  l'objet
                  proviennent des IDs effectifs du processus appelant, et  les
                  bits  de  permission  sont  fixes  en fonction des 9 bits de
                  poids faible de mode, hormis les bits qui sont fixes dans le
                  masque  de creation du processus (consultez umask(2)) et qui
                  sont effaces. Un jeu de constantes utilisables pour  definir
                  le mode est decrit dans open(2) (les definitions symboliques
                  de  ces  constantes  peuvent  etre  obtenues   en   incluant
                  <sys/stat.h>).

                  Un  nouvel  objet  de  memoire partage a une taille initiale
                  nulle - on la fixe en  utilisant  ftruncate(2).  Les  octets
                  d'un   objet   memoire   partage   nouvellement   cree  sont
                  automatiquement initialises a zero.

       O_EXCL     Si O_CREAT etait precise et si un objet de memoire  partagee
                  avec  le  meme  nom  existait  deja, renvoyer une erreur. La
                  verification et l'existence et la creation  eventuelle  sont
                  realisees de maniere atomique.

       O_TRUNC    Si  l'objet de memoire partagee existait, tronquer sa taille
                  a zero.

       Les definitions des valeurs de ces attributs peuvent etre  obtenues  en
       incluant <fcntl.h>.

       Si  elle reussit, la fonction shm_open() renvoie un nouveau descripteur
       decrivant l'objet de memoire partagee. Le descripteur est assure d'etre
       le  plus  petit  numero  disponible  dans  la table des descripteurs du
       processus. L'attribut FD_CLOEXEC (consultez fcntl(2)) sera  active  sur
       le descripteur de fichier.

       Le  descripteur  est  utilise  normalement pour les appels ulterieurs a
       ftruncate(2) (pour un objet nouvellement cree)  et  mmap(2).  Apres  un
       appel  a  mmap(2)  le  descripteur  peut  etre  ferme  sans affecter la
       projection memoire.

       Le fonctionnement de shm_unlink() est analogue a celui  de  unlink(2) :
       il  supprime  le  nom  d'un objet de memoire partagee, et, une fois que
       tous les processus ont supprime leur projection en memoire,  libere  et
       detruit  le  contenu  de la portion de memoire. Apres un appel reussi a
       shm_unlink(), les tentatives d'appeler  shm_open()  avec  le  meme  nom
       echoueront  (sauf  si  O_CREAT est specifie, auquel cas un nouvel objet
       distinc est cree).

VALEUR RENVOY'EE

       S'il reussit, l'appel shm_open() renvoie un descripteur de fichier  non
       negatif.  S'il  echoue,  shm_open()  renvoie -1. shm_unlink() renvoie 0
       s'il reussit ou -1 en cas d'erreur.

ERREURS

       Lors d'un  echec,  errno  indique  la  cause  de  l'erreur.  Les  codes
       possibles dans errno sont les suivants :

       EACCES Interdiction  d'utiliser  shm_unlink()  sur  l'objet  de memoire
              partagee.

       EACCES shm_open() refusee pour le nom dans le mode indique, ou  O_TRUNC
              a  ete  reclame et l'appelant n'a pas les permissions d'ecriture
              sur l'objet.

       EEXIST O_CREAT et O_EXCL etaient reclames dans shm_open() et  un  objet
              de memoire partagee du meme nom existait deja.

       EINVAL L'argument nom de shm_open() etait invalide.

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

       ENAMETOOLONG
              La longueur du nom depasse PATH_MAX.

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

       ENOENT Tentative d'ouvrir avec shm_open() un nom qui n'existe pas, sans
              attribut O_CREAT.

       ENOENT Tentative d'utiliser shm_unlink() sur un nom qui n'existe pas.

VERSIONS

       Ces fonctions sont fournies depuis la glibc 2.2.

CONFORMIT'E

       POSIX.1-2001.

       POSIX.1-2001 indique que le groupe proprietaire d'un objet nouvellement
       cree utilise soit l'ID de groupe du processus appelant, soit  un  << ID
       de groupe par defaut defini par le systeme >>.

NOTES

       POSIX  ne  precise  pas  le  comportement de la combinaison O_RDONLY et
       O_TRUNC.  Sous  Linux,  la  troncature  aura  lieu  -  cela  n'est  pas
       necessairement le cas sous d'autres systemes Unix.

       L'implementation  sous  Linux  2.4 des objets de memoire partagee POSIX
       utilise un systeme de fichiers dedies, monte en principe sous /dev/shm.

VOIR AUSSI

       close(2),  fchmod(2),  fchown(2),  fcntl(2),  fstat(2),   ftruncate(2),
       mmap(2), open(2), umask(2), shm_overview(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 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).   Nicolas
       Francois 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> >>.

Linux                           25 fevrier 2009                    SHM_OPEN(3)