Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       sem_open - Initialiser et ouvrir un sémaphore nommé

SYNOPSIS

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

       sem_t *sem_open(const char *name, int oflag);
       sem_t *sem_open(const char *name, int oflag,
                       mode_t mode, unsigned int value);

       Effectuez l'édition des liens avec l'option -pthread.

DESCRIPTION

       sem_open()  crée  un  nouveau  sémaphore  POSIX  ou en ouvre un existant. Le sémaphore est
       identifié  par  name.  Pour  les  détails  de   la   construction   de   name,   consultez
       sem_overview(7).

       L'argument oflag spécifie les attributs qui contrôlent la manière d'opérer de l'appel (les
       définitions des valeurs des attributs peuvent être obtenues  en  incluant  <fcntl.h>).  Si
       O_CREAT  est  spécifié  dans  oflag,  le  sémaphore  est  créé  s'il n'existe pas déjà. Le
       propriétaire (UID) du sémaphore est  l'UID  effectif  du  processus  appelant.  Le  groupe
       propriétaire  (GID)  est  le GID effectif du processus appelant. Si O_CREAT et O_EXCL sont
       tous les deux spécifiés dans oflag, une erreur sera renvoyée si le  sémaphore  du  nom  de
       name existe déjà.

       Si O_CREAT est spécifié dans oflag, deux autres arguments doivent être fournis. L'argument
       mode spécifie les permissions à placer sur le nouveau sémaphore, comme pour  open(2)  (les
       définitions  symboliques  des  bits  de  permissions  peuvent  être  obtenues  en incluant
       <sys/stat.h>).  Ces  permissions  sont  « masquées »  avec  le  umask  du  processus.  Les
       permissions   de   lecture   et  d'écriture  devraient  être  accordées  à  chaque  classe
       d'utilisateurs qui aura accès au sémaphore. L'argument value spécifie la  valeur  initiale
       du  nouveau  sémaphore.  Si O_CREAT est spécifié et que le sémaphore du nom de name existe
       déjà, mode et value sont ignorés.

VALEUR RENVOYÉE

       S'il réussit, sem_open() renvoie  l'adresse  du  nouveau  sémaphore ;  cette  adresse  est
       utilisée  lors de l'appel des autres fonctions sur les sémaphores. S'il échoue, sem_open()
       renvoie SEM_FAILED et écrit errno en conséquence.

ERREURS

       EACCES Le sémaphore existe mais l'appelant n'a pas la permission de l'ouvrir.

       EEXIST O_CREAT et O_EXCL ont été tous les deux spécifiés dans  oflag,  mais  un  sémaphore
              avec le nom de name existe déjà.

       EINVAL value était plus grand que SEM_VALUE_MAX.

       EINVAL name consiste en une barre oblique « / », suivie d'aucun autre caractère.

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

       ENAMETOOLONG
              name est trop long.

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

       ENOENT L'attribut  O_CREAT n'était pas spécifié dans oflag, et aucun sémaphore avec le nom
              de name n'existe ; ou O_CREAT était spécifié, mais name  n'était  pas  correctement
              formé.

       ENOMEM Mémoire insuffisante.

CONFORMITÉ

       POSIX.1-2001.

VOIR AUSSI

       sem_close(3), sem_getvalue(3), sem_post(3), sem_unlink(3), sem_wait(3), sem_overview(7)

COLOPHON

       Cette  page  fait partie de la publication 3.57 du projet 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/.

TRADUCTION

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

       Alain Portal <http://manpagesfr.free.fr/> (2006). Nicolas François 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> ».