sem_open   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 29 mai 2008
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
sem_open - Initialiser et ouvrir un sémaphore nommé  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <fcntl.h>           /* Pour les constantes O_* */
#include <sys/stat.h>        /* Pour les constantes « mode » */
#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);

Liez avec -lrt ou -pthread.  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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, voir 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 d'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 des permissions de bits 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Si elle 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. Si elle échoue, sem_open() renvoie SEM_FAILED et écrit errno en conséquence.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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.
EMFILE
Le processus a déjà le nombre maximum de fichiers ouverts.
ENAMETOOLONG
name était trop long.
ENFILE
La limite système sur le nombre total de fichiers ouverts 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.
ENOMEM
Mémoire insuffisante.
 



CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
POSIX.1-2001.  



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
sem_close(3), sem_getvalue(3), sem_post(3), sem_unlink(3), sem_wait(3), sem_overview(7)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 29 juillet 2006 et révisée le 6 juin 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 sem_open ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
VOIR AUSSI
TRADUCTION

Table des mots clés   Début   Suivant   Sommaire   Préc.page.lue   Accueil
EACCESERREURS
EEXISTERREURS
EINVALERREURS
EMFILEERREURS
ENAMETOOLONGERREURS
ENFILEERREURS
ENOENTERREURS
ENOMEMERREURS



Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:49:26, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional