Provided by: manpages-fr-dev_3.65d1p1-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.65 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> ».