sem_init(3) Library Functions Manual sem_init(3) NOM sem_init - Initialiser un semaphore non nomme BIBLIOTHEQUE Bibliotheque de threads POSIX (libpthread, -lpthread) SYNOPSIS #include int sem_init(sem_t *sem, int pshared, unsigned int valeur); DESCRIPTION sem_init() initialise le semaphore non nomme situe a l'adresse pointee par sem. L'argument valeur specifie la valeur initiale du semaphore. L'argument pshared indique si ce semaphore sera partage entre les threads d'un processus ou entre processus. Si pshared vaut 0, le semaphore est partage entre les threads d'un processus et devrait etre situe a une adresse visible par tous les threads (par exemple, une variable globale ou une variable allouee dynamiquement dans le tas). Si pshared n'est pas nul, le semaphore est partage entre processus et devrait etre situe dans une region de memoire partagee (consultez shm_open(3), mmap(2) et shmget(2)) (puisqu'un enfant cree avec fork(2) herite de la projection memoire du parent, il peut acceder au semaphore). Tout processus qui peut acceder a la region de memoire partagee peut operer sur le semaphore avec sem_post(3), sem_wait(3), etc. L'initialisation d'un semaphore qui a deja ete initialise resulte en un comportement indefini. VALEUR RENVOYEE sem_init() renvoie 0 s'il reussit. S'il echoue, il renvoie -1 et ecrit errno en consequence. ERREURS EINVAL valeur est plus grand que SEM_VALUE_MAX. ENOSYS pshared n'est pas nul, mais le systeme ne gere pas les semaphores partages entre processus (consultez sem_overview(7)). ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |sem_init() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001. Bizarrement, POSIX.1-2001 ne specifie pas la valeur que devrait renvoyer un appel reussi a sem_init(). POSIX.1-2008 corrige cela et specifie une valeur de retour nulle en cas de succes. EXEMPLES Consultez shm_open(3) et sem_wait(3). VOIR AUSSI sem_destroy(3), sem_post(3), sem_wait(3), sem_overview(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Thomas Vincent Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 sem_init(3)