.\" -*- coding: UTF-8 -*- .\" Copyright 1993 Giorgio Ciucci (giorgio@crcc.it) .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" Modified Tue Oct 22 17:54:56 1996 by Eric S. Raymond .\" Modified 1 Jan 2002, Martin Schulze .\" Modified 4 Jan 2002, Michael Kerrisk .\" Modified, 27 May 2004, Michael Kerrisk .\" Added notes on capability requirements .\" Modified, 11 Nov 2004, Michael Kerrisk .\" Language and formatting clean-ups .\" Added notes on /proc files .\" Rewrote BUGS note about semget()'s failure to initialize .\" semaphore values .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SEMGET 2 "2 août 2019" Linux "Manuel du programmeur Linux" .SH NOM semget \- Obtenir l'identifiant d'un ensemble de sémaphores System\ V .SH SYNOPSIS .nf \fB#include \fP \fB#include \fP \fB#include \fP .fi .PP \fBint semget(key_t \fP\fIkey\fP\fB,\fP \fBint \fP\fInsems\fP\fB,\fP \fBint \fP\fIsemflg\fP\fB);\fP .SH DESCRIPTION L'appel système \fBsemget\fP() renvoie l'identifiant de l'ensemble de sémaphores System\ V associé à la valeur de clé \fIkey\fP. Cela peut servir pour obtenir l'identifiant d'un ensemble de sémaphores créé précédemment (lorsque \fIsemflg\fP vaut\ 0 et que \fIkey\fP n'a pas la valeur \fBIPC_PRIVATE\fP) ou pour créer un nouvel ensemble. .PP Un nouvel ensemble contenant \fInsems\fP sémaphores est créé si \fIkey\fP a la valeur \fBIPC_PRIVATE\fP ou si aucun ensemble n'est associé à \fIkey\fP, et si l'option \fBIPC_CREAT\fP est présente dans \fIsemflg\fP. .PP Si \fIsemflg\fP contient à la fois \fBIPC_CREAT\fP et \fBIPC_EXCL\fP et qu'un ensemble de sémaphores existe déjà pour la clé \fIkey\fP, \fBsemget\fP() échoue et \fIerrno\fP vaut \fBEEXIST\fP. (Cela est analogue à l'effet de la combinaison \fBO_CREAT | O_EXCL\fP pour \fBopen\fP(2).) .PP Pendant la création, les 9\ bits de poids faible de l'argument \fIsemflg\fP définissent les permissions d'accès (pour le propriétaire, le groupe et les autres) au jeu de sémaphores, en utilisant le même format et la même signification que les droits d'accès dans \fBopen\fP(2). Les permissions d'exécution ne sont pas utilisées par le système, et pour un jeu de sémaphores, l'autorisation d'écriture signifie autorisation de modification. .PP Durant la création, la structure de données \fIsemid_ds\fP (consultez \fBsemctl\fP(2)) contrôlant le jeu de sémaphores est initialisée ainsi par \fBsemget\fP()\ : .IP \fIsem_perm.cuid\fP et \fIsem_perm.uid\fP contiennent l'UID effectif du processus appelant. .IP \fIsem_perm.cgid\fP et \fIsem_perm.gid\fP contiennent le GID effectif du processus appelant. .IP Les 9\ bits de poids faible de \fIsem_perm.mode\fP contiennent les 9\ bits de poids faible de \fIsemflg\fP. .IP \fIsem_nsems\fP reçoit la valeur \fInsems\fP. .IP \fIsem_otime\fP est mis à\ 0. .IP \fIsem_ctime\fP est rempli avec l'heure actuelle. .PP L'argument \fInsems\fP peut valoir\ 0 (ignore) si l'appel système n'est pas une création d'ensemble de sémaphores. Autrement \fInsems\fP doit être supérieur à\ 0 et inférieur ou égal au nombre maximal de sémaphores par ensemble (\fBSEMMSL\fP). .PP .\" and a check is made to see if it is marked for destruction. Si le jeu de sémaphores existe déjà, les permissions d'accès sont contrôlées. .SH "VALEUR RENVOYÉE" Si l'appel réussit, il renvoie l'identifiant de l'ensemble (un entier positif), sinon il renvoie\ \-1 et \fIerrno\fP contient le code d'erreur. .SH ERREURS En cas d'échec, \fIerrno\fP prend l'une des valeurs suivantes\ : .TP \fBEACCES\fP Le jeu de sémaphore associé à \fIkey\fP existe, mais le processus n'a aucun droit d'accès sur lui et n'a pas la capacité \fBCAP_IPC_OWNER\fP dans l'espace de noms utilisateur qui régit son espace de noms IPC. .TP \fBEEXIST\fP .\" .TP .\" .B EIDRM .\" The semaphore set is marked to be deleted. \fBIPC_CREAT\fP et \fBIPC_EXCL\fP ont été tous les deux indiqués dans \fIsemflag\fP, mais un ensemble de sémaphores de clé \fIkey\fP existe déjà. .TP \fBEINVAL\fP \fInsems\fP est inférieur à zéro ou supérieur à la limite du nombre de sémaphores par ensemble, (\fBSEMMSL\fP). .TP \fBEINVAL\fP Un ensemble de sémaphores identifié par \fIkey\fP existe déjà, mais \fInsems\fP est plus grand que le nombre de sémaphores par ensemble. .TP \fBENOENT\fP Aucun jeu de sémaphores associé a \fIkey\fP n'existe et l'argument \fIsemflg\fP ne précise pas \fBIPC_CREAT\fP. .TP \fBENOMEM\fP Pas assez de mémoire pour créer les structures nécessaires. .TP \fBENOSPC\fP Le nombre maximal de jeux de sémaphores sur le système (\fBSEMMNI\fP) est atteint, ou le nombre maximal de sémaphores sur le système est atteint (\fBSEMMNS\fP). .SH CONFORMITÉ .\" SVr4 documents additional error conditions EFBIG, E2BIG, EAGAIN, .\" ERANGE, EFAULT. SVr4, POSIX.1\-2001. .SH NOTES .\" Like Linux, the FreeBSD man pages still document .\" the inclusion of these header files. L'inclusion de \fI\fP et \fI\fP n'est pas nécessaire sous Linux et n'est exigée par aucune version de POSIX. Cependant, certaines implémentations anciennes nécessitent l'inclusion de ces fichiers d'en\-tête, et le SVID documente aussi leur inclusion. Les applications ayant pour but d'être portables pourraient inclure ces fichiers d'en\-tête. .PP .\" \fBIPC_PRIVATE\fP n'est pas une option, mais un objet de type \fIkey_t\fP. Si l'on utilise cette valeur spéciale dans l'argument \fIkey\fP, l'appel système ne se préoccupera que des 9\ bits de poids faible de \fIsemflg\fP et tentera de créer un nouveau jeu de sémaphores. .SS "Initialisation des sémaphores" .\" In truth, every one of the many implementations that I've tested sets .\" the values to zero, but I suppose there is/was some obscure .\" implementation out there that does not. Les valeurs des sémaphores dans un ensemble qui vient d'être créé sont indéterminées (POSIX.1\-2001 et POSIX.1\-2008 sont explicites sur ce point, bien que POSIX.1\-2008 note que de futures versions du standard pourraient exiger des implémentations qu'elles initialisent les sémaphores à\ 0). Même si Linux, comme de nombreuses autres implémentations, initialise les valeurs des sémaphores à\ 0, une application portable ne peut pas compter sur cette initialisation\ : elle doit initialiser explicitement les sémaphores à la valeur souhaitée. .PP .\" L'initialisation peut être effectuée avec les opérations \fBSETVAL\fP ou \fBSETALL\fP de la fonction \fBsemctl\fP(2). Lorsque plusieurs concurrents ne savent pas qui sera le premier à initialiser le jeu de sémaphores, il est possible de vérifier que le membre \fIsem_otime\fP de la structure récupérée par l'opération \fBsemctl\fP(2) \fBIPC_STAT\fP est non nul pour éviter les conditions de concurrence. .SS "Limites des sémaphores" Les limites suivantes de ressources concernent l'appel système \fBsemget\fP()\ : .TP \fBSEMMNI\fP .\" commit e843e7d2c88b7db107a86bd2c7145dc715c058f4 .\" This /proc file is not available in Linux 2.2 and earlier -- MTK Limite système du nombre de jeux de sémaphores. Sur les systèmes Linux antérieurs à la version\ 3.19, la valeur par défaut pour cette limite était de 128. Depuis Linux\ 3.19, elle est de 32\ 000. Sous Linux, cette limite peut être lue et modifiée dans le quatrième champ de \fI/proc/sys/kernel/sem\fP. .TP \fBSEMMSL\fP .\" commit e843e7d2c88b7db107a86bd2c7145dc715c058f4 Nombre maximal de sémaphores par ensemble. Sur les systèmes Linux antérieurs à la version\ 3.19, la valeur par défaut pour cette limite était de 250. Depuis Linux\ 3.19, elle est de 32\ 000. Sous Linux, cette limite peut être lue et modifiée dans le premier champ de \fI/proc/sys/kernel/sem\fP. .TP \fBSEMMNS\fP Limite système du nombre de sémaphores\ : dépend de la politique (sous Linux, cette limite peut être lue et modifiée dans le second champ de \fI/proc/sys/kernel/sem\fP). Le nombre de sémaphores est également limité par le produit de \fBSEMMSL\fP avec \fBSEMMNI\fP. .SH BOGUES Le choix du nom \fBIPC_PRIVATE\fP est malheureux, \fBIPC_NEW\fP aurait mieux décrit sa fonction. .SH "VOIR AUSSI" \fBsemctl\fP(2), \fBsemop\fP(2), \fBftok\fP(3), \fBcapabilities\fP(7), \fBsem_overview\fP(7), \fBsysvipc\fP(7) .SH COLOPHON Cette page fait partie de la publication\ 5.04 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier et David Prévot . Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE 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 à .MT debian-l10n-french@lists.debian.org .ME .