Provided by: manpages-fr-dev_4.13-4_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 *nom, int oflag);
       sem_t *sem_open(const char *nom, int oflag,
                       mode_t mode, unsigned int valeur);

       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 nom. Pour les détails de la construction de nom, 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 nom 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  l'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 valeur spécifie la valeur initiale
       du nouveau sémaphore. Si O_CREAT est spécifié et que le sémaphore nom existe déjà, mode et
       valeur 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 nom
              existe déjà.

       EINVAL valeur était plus grand que SEM_VALUE_MAX.

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

       EMFILE La limite du nombre de descripteurs de fichiers par processus a été atteinte.

       ENAMETOOLONG
              nom est trop long.

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

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

       ENOMEM Mémoire insuffisante.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌───────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├───────────┼──────────────────────┼─────────┤
       │sem_open() │ Sécurité des threads │ MT-Safe │
       └───────────┴──────────────────────┴─────────┘

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008.

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 5.10 du projet man-pages Linux.  Une  description
       du  projet et des instructions pour signaler des anomalies et la dernière version de cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La traduction française de cette  page  de  manuel  a  été  créée  par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,  Stéphan  Rafin  <stephan.rafin@laposte.net>, Thierry
       Vignaud <tvignaud@mandriva.com>, François Micaux, Alain  Portal  <aportal@univ-montp2.fr>,
       Jean-Philippe    Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-
       luc.coulon@wanadoo.fr>,   Julien    Cristau    <jcristau@debian.org>,    Thomas    Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,  Denis
       Barbier   <barbier@debian.org>,   David   Prévot  <david@tilapin.org>  et  Thomas  Vincent
       <tvincent@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à debian-l10n-french@lists.debian.org ⟨⟩.