Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]
SEM_INIT
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- VALEUR RENVOYÉE
- ERREURS
- CONFORMITÉ
- NOTES
- VOIR AUSSI
- TRADUCTION
NOM
sem_init - Initialiser un sémaphore non nommé
SYNOPSIS
#include <semaphore.h>
int sem_init(sem_t *sem, int pshared, unsigned int value);
DESCRIPTION
sem_init() initialise le sémaphore non nommé situé à l'adresse pointée
par sem. L'argument value spécifie la valeur initiale du sémaphore.
L'argument pshared indique si ce sémaphore sera partagé entre les threads
d'un processus ou entre processus.
Si pshared vaut 0, le sémaphore est partagé entre les threads d'un
processus et devrait être situé à une adresse visible par tous les threads
(par exemple, une variable globale ou une variable allouée dynamiquement
dans le tas).
Si pshared n'est pas nul, le sémaphore est partagé entre processus et
devrait être situé dans une région de mémoire partagée (voir shm_open(3),
mmap(2) et shmget(2)) (puisqu'un fils créé avec fork(2) hérite de
la projection mémoire du père, il peut accéder au sémaphore). Tout processus
qui peut accéder à la région de mémoire partagée peut opérer sur le
sémaphore avec sem_post(3), sem_wait(3), etc.
L'initialisation d'un sémaphore qui a déjà été initialisé résulte en un
comportement indéfini.
VALEUR RENVOYÉE
sem_init() renvoie 0 s'il réussit. S'il échoue, il renvoie -1 et écrit
errno en conséquence.
ERREURS
- EINVAL
-
value est plus grand que SEM_VALUE_MAX.
- ENOSYS
-
pshared n'est pas nul, mais le système ne supporte pas les sémaphores
partagés entre processus (voir sem_overview(7)).
CONFORMITÉ
POSIX.1-2001.
NOTES
Bizarrement, POSIX.1-2001 ne spécifie pas la valeur que devrait retourner un
appel réussi à sem_init(). Toutefois, virtuellement toutes les
implémentations renvoient 0 dans ce cas.
VOIR AUSSI
sem_destroy(3), sem_post(3), sem_wait(3), sem_overview(7)
TRADUCTION
Cette page de manuel a été traduite par Alain Portal
<aportal AT univ-montp2 DOT fr> en 2006.
La traduction de cette page de manuel est basée sur les traductions
disponibles sur http://manpagesfr.free.fr/,
mais est gérée par l'équipe francophone de traduction de Debian
au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».
|