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> ».

Linux                                              13 mai 2012                                       SEM_OPEN(3)