sem_open
Table des matières
Retour à l'index
NOM
sem_open - Initialiser et ouvrir un sémaphore nommé
BIBLIOTHÈQUE
Bibliothèque de threads POSIX (libpthread, -lpthread)
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);
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).
| Interface | Attribut | Valeur
|
|
sem_open()
| Sécurité des threads | MT-Safe
|
STANDARDS
POSIX.1-2008.
HISTORIQUE
POSIX.1-2001.
VOIR AUSSI
sem_close(3), sem_getvalue(3), sem_post(3), sem_unlink(3),
sem_wait(3), sem_overview(7)
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
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 à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- ATTRIBUTS
-
- STANDARDS
-
- HISTORIQUE
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:25 GMT, September 19, 2025