# French translation of manpages # This file is distributed under the same license as the manpages-l10n package. # Copyright © of this file: # Christophe Blaess , 1996-2003. # Stéphan Rafin , 2002. # Thierry Vignaud , 1999,2002. # François Micaux, 2002. # Alain Portal , 2003-2008. # Jean-Philippe Guérard , 2005-2006. # Jean-Luc Coulon (f5ibh) , 2006-2007. # Julien Cristau , 2006-2007. # Thomas Huriaux , 2006-2008. # Nicolas François , 2006-2008. # Florentin Duneau , 2006-2010. # Simon Paillard , 2006, 2012-2014. # Denis Barbier , 2006,2010. # David Prévot , 2010-2014. # Lucien Gentis , 2022. msgid "" msgstr "" "Project-Id-Version: perkamon\n" "POT-Creation-Date: 2024-06-01 06:21+0200\n" "PO-Revision-Date: 2023-04-14 13:31+0200\n" "Last-Translator: Lucien Gentis \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Poedit 2.4.2\n" "X-Poedit-Bookmarks: 129,-1,-1,-1,-1,-1,-1,-1,-1,-1\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "shm_open" msgstr "shm_open" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "2 mai 2024" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "Pages du manuel de Linux 6.8" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "NOM" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "shm_open, shm_unlink - create/open or unlink POSIX shared memory objects" msgstr "" "shm_open, shm_unlink - Créer, ouvrir ou supprimer des objets en mémoire " "partagée POSIX" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "BIBLIOTHÈQUE" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Real-time library (I, I<-lrt>)" msgstr "Bibliothèque de temps réel (I, I<-lrt>)" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "SYNOPSIS" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "B<#include Esys/mman.hE>\n" "B<#include Esys/stat.hE> /* For mode constants */\n" "B<#include Efcntl.hE> /* For O_* constants */\n" msgstr "" "B<#include Esys/mman.hE>\n" "B<#include Esys/stat.hE> /* Pour les constantes de mode */\n" "B<#include Efcntl.hE> /* Pour les constantes O_* */\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<, int >IB<, mode_t >IB<);>\n" "BIB<);>\n" msgstr "" "BIB<, int >IB<, mode_t >IB<);>\n" "BIB<);>\n" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "DESCRIPTION" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B() creates and opens a new, or opens an existing, POSIX shared " "memory object. A POSIX shared memory object is in effect a handle which can " "be used by unrelated processes to B(2) the same region of shared " "memory. The B() function performs the converse operation, " "removing an object previously created by B()." msgstr "" "La fonction B() crée et ouvre un nouvel objet en mémoire partagée " "POSIX, ou ouvre un objet existant. Il s'agit d'un descripteur utilisable par " "des processus indépendants pour projeter la même région mémoire à l'aide de " "B(2). La fonction B() réalise l'opération inverse en " "supprimant l'objet créé précédemment par B()." #. glibc allows the initial slash to be omitted, and makes #. multiple initial slashes equivalent to a single slash. #. This differs from the implementation of POSIX message queues. #. glibc allows subdirectory components in the name, in which #. case the subdirectory must exist under /dev/shm, and allow the #. required permissions if a user wants to create a shared memory #. object in that subdirectory. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The operation of B() is analogous to that of B(2). I " "specifies the shared memory object to be created or opened. For portable " "use, a shared memory object should be identified by a name of the form I; that is, a null-terminated string of up to B (i.e., " "255) characters consisting of an initial slash, followed by one or more " "characters, none of which are slashes." msgstr "" "Le fonctionnement de B() est analogue à celui de B(2). " "I indique l'objet en mémoire partagée à créer ou ouvrir. Pour un " "fonctionnement portable, un objet en mémoire partagée doit être identifié " "par un nom au format I ; c'est-à-dire une chaîne terminée par un " "octet de valeur zéro d'au plus B (c'est-à-dire 255) caractères, et " "commençant par une barre oblique (« / ») suivie d'un caractère ou plus, ces " "derniers n'étant pas des barres obliques." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "I is a bit mask created by ORing together exactly one of B " "or B and any of the other flags listed here:" msgstr "" "I est un masque de bits associant à l'aide d'un OU logique une et " "une seule des deux constantes B ou B et un ou plusieurs " "des attributs décrits ci-après :" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Open the object for read access. A shared memory object opened in this way " "can be B(2)ed only for read (B) access." msgstr "" "Ouvrir l'objet en lecture seule. Un tel objet ne pourra être projeté en " "mémoire avec B(2) qu'avec un accès en lecture (B)." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Open the object for read-write access." msgstr "Ouvrir l'objet en lecture et écriture." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. In truth it is actually the filesystem IDs on Linux, but these #. are nearly always the same as the effective IDs. (MTK, Jul 05) #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Create the shared memory object if it does not exist. The user and group " "ownership of the object are taken from the corresponding effective IDs of " "the calling process, and the object's permission bits are set according to " "the low-order 9 bits of I, except that those bits set in the process " "file mode creation mask (see B(2)) are cleared for the new object. " "A set of macro constants which can be used to define I is listed in " "B(2). (Symbolic definitions of these constants can be obtained by " "including Isys/stat.hE>.)" msgstr "" "Créer l'objet en mémoire partagée s'il n'existe pas. L'utilisateur et le " "groupe propriétaires de l'objet proviennent des ID effectifs du processus " "appelant, et les bits de permission sont définis en fonction des 9\\ bits de " "poids faible de I, excepté que les bits qui sont définis dans le " "masque de mode de fichier pour la création du processus (consultez " "B(2)) sont effacés pour le nouvel objet. Un jeu de constantes de " "macroutilisables pour définir le I est décrit dans B(2) (les " "définitions symboliques de ces constantes peuvent être obtenues en incluant " "Isys/stat.hE>)." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A new shared memory object initially has zero length\\[em]the size of the " "object can be set using B(2). The newly allocated bytes of a " "shared memory object are automatically initialized to 0." msgstr "" "Un nouvel objet en mémoire partagée a une taille initiale nulle — elle peut " "être définie avec B(2). Les octets d'un objet en mémoire partagée " "nouvellement créé sont automatiquement initialisés à zéro." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If B was also specified, and a shared memory object with the given " "I already exists, return an error. The check for the existence of the " "object, and its creation if it does not exist, are performed atomically." msgstr "" "Si B était aussi précisé et si un objet en mémoire partagée avec le " "même I existait déjà, renvoyer une erreur. La vérification de " "l'existence de l'objet et sa création s'il n'existe pas sont réalisées de " "manière atomique." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "If the shared memory object already exists, truncate it to zero bytes." msgstr "Si l'objet en mémoire partagée existe déjà, tronquer sa taille à zéro." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Definitions of these flag values can be obtained by including Ifcntl." "hE>." msgstr "" "Les définitions des valeurs de ces attributs peuvent être obtenues en " "incluant Ifcntl.hE>." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On successful completion B() returns a new file descriptor " "referring to the shared memory object. This file descriptor is guaranteed " "to be the lowest-numbered file descriptor not previously opened within the " "process. The B flag (see B(2)) is set for the file " "descriptor." msgstr "" "Si elle réussit, la fonction B() renvoie un nouveau descripteur de " "fichierréférençant l'objet en mémoire partagée. Ce descripteur sera le plus " "petit numéro disponible dans la table des descripteurs du processus. " "L'attribut B (consultez B(2)) sera activé pour le " "descripteur de fichier." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The file descriptor is normally used in subsequent calls to B(2) " "(for a newly created object) and B(2). After a call to B(2) " "the file descriptor may be closed without affecting the memory mapping." msgstr "" "Le descripteur de fichier est utilisé normalement pour les appels ultérieurs " "à B(2) (pour un objet nouvellement créé) et B(2). Après un " "appel à B(2) le descripteur peut être fermé sans affecter la " "projection mémoire." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The operation of B() is analogous to B(2): it removes a " "shared memory object name, and, once all processes have unmapped the object, " "deallocates and destroys the contents of the associated memory region. " "After a successful B(), attempts to B() an object " "with the same I fail (unless B was specified, in which case a " "new, distinct object is created)." msgstr "" "Le fonctionnement de B() est analogue à celui de " "B(2)\\ : il supprime le nom d'un objet en mémoire partagée, et, une " "fois que tous les processus ont supprimé leur projection en mémoire, libère " "et détruit le contenu de la portion de mémoire associée. Après un appel " "réussi à B(), les tentatives d'appeler B() avec le " "même I échoueront (sauf si B est spécifié, auquel cas un " "nouvel objet distinct sera créé)." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "RETURN VALUE" msgstr "VALEUR RENVOYÉE" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On success, B() returns a file descriptor (a nonnegative " "integer). On success, B() returns 0. On failure, both " "functions return -1 and set I to indicate the error." msgstr "" "Si elles réussissent, B() renvoie un descripteur de fichier (un " "entier non négatif) et B() renvoie  B<0>. En cas d'échec, les " "deux fonctions renvoient B<-1> et définissent I pour indiquer " "l'erreur." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ERRORS" msgstr "ERREURS" #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Permission to B() the shared memory object was denied." msgstr "" "La permission d'utiliser B() sur l'objet en mémoire partagée a " "été refusée." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Permission was denied to B() I in the specified I, or " "B was specified and the caller does not have write permission on " "the object." msgstr "" "L'utilisation de B() pour ouvrir l'objet I dans le I " "spécifié a été refusée, ou B a été spécifié et l'appelant n'a pas " "les permissions d'écriture sur l'objet." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Both B and B were specified to B() and the " "shared memory object specified by I already exists." msgstr "" "B et B ont été spécifiés dans B() et un objet de " "mémoire partagée du même I existe déjà." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The I argument to B() was invalid." msgstr "L'argument I de B() n'était pas valable." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The per-process limit on the number of open file descriptors has been " "reached." msgstr "" "La limite du nombre de descripteurs de fichiers par processus a été atteinte." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The length of I exceeds B." msgstr "La longueur du I dépasse B." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The system-wide limit on the total number of open files has been reached." msgstr "" "La limite du nombre total de fichiers ouverts pour le système entier a été " "atteinte." #. type: TP #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "B" msgstr "B" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An attempt was made to B() a I that did not exist, and " "B was not specified." msgstr "" "Tentative d'ouvrir avec B() un objet I qui n'existe pas, " "alors que l'attribut B n'a pas été spécifié." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "An attempt was to made to B() a I that does not exist." msgstr "" "Tentative d'utiliser B() sur un objet I qui n'existe pas." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ATTRIBUTES" msgstr "ATTRIBUTS" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "For an explanation of the terms used in this section, see B(7)." msgstr "" "Pour une explication des termes utilisés dans cette section, consulter " "B(7)." #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Interface" msgstr "Interface" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Attribute" msgstr "Attribut" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Value" msgstr "Valeur" #. type: tbl table #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid ".na\n" msgstr ".na\n" #. type: tbl table #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid ".nh\n" msgstr ".nh\n" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "B(),\n" "B()" msgstr "" "B(),\n" "B()" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Thread safety" msgstr "Sécurité des threads" #. type: tbl table #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "MT-Safe locale" msgstr "MT-Safe locale" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "VERSIONS" msgstr "VERSIONS" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX leaves the behavior of the combination of B and B " "unspecified. On Linux, this will successfully truncate an existing shared " "memory object\\[em]this may not be so on other UNIX systems." msgstr "" "POSIX ne précise pas le comportement de la combinaison B et " "B. Sous Linux, la troncature aura lieu — cela n'est pas " "nécessairement le cas sous d'autres systèmes UNIX." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The POSIX shared memory object implementation on Linux makes use of a " "dedicated B(5) filesystem that is normally mounted under I." msgstr "" "L'implémentation sous Linux des objets de mémoire partagée POSIX utilise un " "système de fichiers B(5) dédié, monté en principe sous I." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "STANDARDS" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "POSIX.1-2008." msgstr "POSIX.1-2008." #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "HISTORIQUE" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "glibc 2.2. POSIX.1-2001." msgstr "glibc 2.2. POSIX.1-2001." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "POSIX.1-2001 says that the group ownership of a newly created shared memory " "object is set to either the calling process's effective group ID or \"a " "system default group ID\". POSIX.1-2008 says that the group ownership may " "be set to either the calling process's effective group ID or, if the object " "is visible in the filesystem, the group ID of the parent directory." msgstr "" "POSIX.1-2001 indique que le groupe propriétaire d'un objet en mémoire " "partagée nouvellement créé utilise soit l'ID de groupe du processus " "appelant, soit un «\\ ID de groupe par défaut défini par le système\\ ». " "POSIX.1-2008 indique que le groupe propriétaire peut être défini soit avec " "l'ID de groupe du processus appelant, soit, si l'objet est visible dans le " "système de fichiers, avec l'ID de groupe du répertoire parent." #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "EXEMPLES" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The programs below employ POSIX shared memory and POSIX unnamed semaphores " "to exchange a piece of data. The \"bounce\" program (which must be run " "first) raises the case of a string that is placed into the shared memory by " "the \"send\" program. Once the data has been modified, the \"send\" program " "then prints the contents of the modified shared memory. An example " "execution of the two programs is the following:" msgstr "" "Les programmes ci-dessous utilisent la mémoire partagée POSIX et des " "sémaphores non nommés POSIX pour échanger des données. Le programme " "« bounce » (qui doit être exécuté en premier) illustre le cas d'une chaîne " "placée en mémoire partagée par le programme « send ». Lorsque les données " "ont été modifiées, le programme « send » affiche le contenu de la mémoire " "partagée modifié. Voici un exemple d'exécution des deux programmes :" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "$ B<./pshm_ucase_bounce /myshm &>\n" "[1] 270171\n" "$ B<./pshm_ucase_send /myshm hello>\n" "HELLO\n" msgstr "" "$ B<./pshm_ucase_bounce /myshm &>\n" "[1] 270171\n" "$ B<./pshm_ucase_send /myshm bonjour>\n" "BONJOUR\n" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Further detail about these programs is provided below." msgstr "Vous trouverez plus de détails à propos de ces programmes ci-dessous." #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Program source: pshm_ucase.h" msgstr "Source du programme : pshm_ucase.h" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The following header file is included by both programs below. Its primary " "purpose is to define a structure that will be imposed on the memory object " "that is shared between the two programs." msgstr "" "Ce fichier d'en-tête est inclus par les deux programmes ci-dessous. Sa " "principale fonction consiste à définir une structure qui sera imposée à " "l'objet en mémoire partagé entre les deux programmes." #. type: Plain text #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "" "#ifndef PSHM_UCASE_H\n" "#define PSHM_UCASE_H\n" "\\&\n" "#include Esemaphore.hE\n" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "\\&\n" "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n" " } while (0)\n" "\\&\n" "#define BUF_SIZE 1024 /* Maximum size for exchanged string */\n" "\\&\n" "/* Define a structure that will be imposed on the shared\n" " memory object */\n" "\\&\n" "struct shmbuf {\n" " sem_t sem1; /* POSIX unnamed semaphore */\n" " sem_t sem2; /* POSIX unnamed semaphore */\n" " size_t cnt; /* Number of bytes used in \\[aq]buf\\[aq] */\n" " char buf[BUF_SIZE]; /* Data being transferred */\n" "};\n" "\\&\n" "#endif // include guard\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Program source: pshm_ucase_bounce.c" msgstr "Source programme : pshm_ucase_bounce.c" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The \"bounce\" program creates a new shared memory object with the name " "given in its command-line argument and sizes the object to match the size of " "the I structure defined in the header file. It then maps the object " "into the process's address space, and initializes two POSIX semaphores " "inside the object to 0." msgstr "" "Le programme « bounce » crée un nouvel objet en mémoire partagée avec le nom " "spécifié comme argument de la ligne de commande et le dimensionne de manière " "à correspondre à la taille de la structure I définie dans le fichier " "d'en-tête. Il projette ensuite l'objet dans l'espace d'adressage du " "processus et initialise deux sémaphores POSIX à B<0> à l'intérieur de " "l'objet." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "After the \"send\" program has posted the first of the semaphores, the " "\"bounce\" program upper cases the data that has been placed in the memory " "by the \"send\" program and then posts the second semaphore to tell the " "\"send\" program that it may now access the shared memory." msgstr "" "Une fois le premier sémaphore posté par le programme « send », le programme " "« bounce » met en capitales les données placées en mémoire par le programme " "« send », puis poste le second sémaphore pour indiquer au programme « send » " "qu'il peut maintenant accéder à la mémoire partagée." #. type: Plain text #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "" "/* pshm_ucase_bounce.c\n" "\\&\n" " Licensed under GNU General Public License v2 or later.\n" "*/\n" "#include Ectype.hE\n" "#include Efcntl.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/mman.hE\n" "#include Eunistd.hE\n" "\\&\n" "#include \"pshm_ucase.h\"\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd;\n" " char *shmpath;\n" " struct shmbuf *shmp;\n" "\\&\n" " if (argc != 2) {\n" " fprintf(stderr, \"Usage: %s /shm-path\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " shmpath = argv[1];\n" "\\&\n" " /* Create shared memory object and set its size to the size\n" " of our structure. */\n" "\\&\n" " fd = shm_open(shmpath, O_CREAT | O_EXCL | O_RDWR, 0600);\n" " if (fd == -1)\n" " errExit(\"shm_open\");\n" "\\&\n" " if (ftruncate(fd, sizeof(struct shmbuf)) == -1)\n" " errExit(\"ftruncate\");\n" "\\&\n" " /* Map the object into the caller\\[aq]s address space. */\n" "\\&\n" " shmp = mmap(NULL, sizeof(*shmp), PROT_READ | PROT_WRITE,\n" " MAP_SHARED, fd, 0);\n" " if (shmp == MAP_FAILED)\n" " errExit(\"mmap\");\n" "\\&\n" " /* Initialize semaphores as process-shared, with value 0. */\n" "\\&\n" " if (sem_init(&shmp-Esem1, 1, 0) == -1)\n" " errExit(\"sem_init-sem1\");\n" " if (sem_init(&shmp-Esem2, 1, 0) == -1)\n" " errExit(\"sem_init-sem2\");\n" "\\&\n" " /* Wait for \\[aq]sem1\\[aq] to be posted by peer before touching\n" " shared memory. */\n" "\\&\n" " if (sem_wait(&shmp-Esem1) == -1)\n" " errExit(\"sem_wait\");\n" "\\&\n" " /* Convert data in shared memory into upper case. */\n" "\\&\n" " for (size_t j = 0; j E shmp-Ecnt; j++)\n" " shmp-Ebuf[j] = toupper((unsigned char) shmp-Ebuf[j]);\n" "\\&\n" " /* Post \\[aq]sem2\\[aq] to tell the peer that it can now\n" " access the modified data in shared memory. */\n" "\\&\n" " if (sem_post(&shmp-Esem2) == -1)\n" " errExit(\"sem_post\");\n" "\\&\n" " /* Unlink the shared memory object. Even if the peer process\n" " is still using the object, this is okay. The object will\n" " be removed only after all open references are closed. */\n" "\\&\n" " shm_unlink(shmpath);\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: SS #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "Program source: pshm_ucase_send.c" msgstr "Source du programme : pshm_ucase_send.c" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The \"send\" program takes two command-line arguments: the pathname of a " "shared memory object previously created by the \"bounce\" program and a " "string that is to be copied into that object." msgstr "" "Le programme « send » accepte deux arguments de ligne de commande : le nom " "d'un objet en mémoire partagée préalablement créé par le programme " "« bounce » et une chaîne à copier dans cet objet." #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The program opens the shared memory object and maps the object into its " "address space. It then copies the data specified in its second argument " "into the shared memory, and posts the first semaphore, which tells the " "\"bounce\" program that it can now access that data. After the \"bounce\" " "program posts the second semaphore, the \"send\" program prints the contents " "of the shared memory on standard output." msgstr "" "Le programme ouvre l'objet en mémoire partagée et le projette dans son " "espace d'adressage. Ensuite, il copie les données spécifiées à l'aide du " "second argument vers la mémoire partagée et poste le premier sémaphore pour " "informer le programme « bounce » qu'il peut maintenant accéder aux données. " "Lorsque le programme « bounce » a posté le second sémaphore, le programme " "« send » affiche le contenu de la mémoire partagée sur la sortie standard." #. type: Plain text #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "" "/* pshm_ucase_send.c\n" "\\&\n" " Licensed under GNU General Public License v2 or later.\n" "*/\n" "#include Efcntl.hE\n" "#include Estddef.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Esys/mman.hE\n" "#include Eunistd.hE\n" "\\&\n" "#include \"pshm_ucase.h\"\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd;\n" " char *shmpath, *string;\n" " size_t len;\n" " struct shmbuf *shmp;\n" "\\&\n" " if (argc != 3) {\n" " fprintf(stderr, \"Usage: %s /shm-path string\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " shmpath = argv[1];\n" " string = argv[2];\n" " len = strlen(string);\n" "\\&\n" " if (len E BUF_SIZE) {\n" " fprintf(stderr, \"String is too long\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Open the existing shared memory object and map it\n" " into the caller\\[aq]s address space. */\n" "\\&\n" " fd = shm_open(shmpath, O_RDWR, 0);\n" " if (fd == -1)\n" " errExit(\"shm_open\");\n" "\\&\n" " shmp = mmap(NULL, sizeof(*shmp), PROT_READ | PROT_WRITE,\n" " MAP_SHARED, fd, 0);\n" " if (shmp == MAP_FAILED)\n" " errExit(\"mmap\");\n" "\\&\n" " /* Copy data into the shared memory object. */\n" "\\&\n" " shmp-Ecnt = len;\n" " memcpy(&shmp-Ebuf, string, len);\n" "\\&\n" " /* Tell peer that it can now access shared memory. */\n" "\\&\n" " if (sem_post(&shmp-Esem1) == -1)\n" " errExit(\"sem_post\");\n" "\\&\n" " /* Wait until peer says that it has finished accessing\n" " the shared memory. */\n" "\\&\n" " if (sem_wait(&shmp-Esem2) == -1)\n" " errExit(\"sem_wait\");\n" "\\&\n" " /* Write modified data in shared memory to standard output. */\n" "\\&\n" " write(STDOUT_FILENO, &shmp-Ebuf, len);\n" " write(STDOUT_FILENO, \"\\en\", 1);\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "VOIR AUSSI" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "B(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), B(2), B(2), " "B(7)" msgstr "" "B(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), B(2), B(2), " "B(7)" #. type: TH #: debian-bookworm #, no-wrap msgid "2023-02-05" msgstr "5 février 2023" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "Pages du manuel de Linux 6.03" #. type: Plain text #: debian-bookworm msgid "These functions are provided in glibc 2.2 and later." msgstr "Ces fonctions sont fournies depuis la glibc 2.2." #. type: Plain text #: debian-bookworm msgid "POSIX.1-2001, POSIX.1-2008." msgstr "POSIX.1-2001, POSIX.1-2008." #. type: SH #: debian-bookworm #, no-wrap msgid "NOTES" msgstr "NOTES" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#include Efcntl.hE\n" "#include Esemaphore.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/mman.hE\n" "#include Esys/stat.hE\n" "#include Eunistd.hE\n" msgstr "" "#include Efcntl.hE\n" "#include Esemaphore.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/mman.hE\n" "#include Esys/stat.hE\n" "#include Eunistd.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n" " } while (0)\n" msgstr "" "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n" " } while (0)\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "#define BUF_SIZE 1024 /* Maximum size for exchanged string */\n" msgstr "#define BUF_SIZE 1024 /* Taille maximale de la chaîne échangée */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "/* Define a structure that will be imposed on the shared\n" " memory object */\n" msgstr "" "/* Définir une structure qui sera imposée à l'objet\n" " en mémoire partagée */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "struct shmbuf {\n" " sem_t sem1; /* POSIX unnamed semaphore */\n" " sem_t sem2; /* POSIX unnamed semaphore */\n" " size_t cnt; /* Number of bytes used in \\[aq]buf\\[aq] */\n" " char buf[BUF_SIZE]; /* Data being transferred */\n" "};\n" msgstr "" "struct shmbuf {\n" " sem_t sem1; /* Sémaphore POSIX non nommé */\n" " sem_t sem2; /* Sémaphore POSIX non nommé */\n" " size_t cnt; /* Nombre d'octets utilisés dans \\[aq]buf\\[aq] */\n" " char buf[BUF_SIZE]; /* Données en cours de transfert */\n" "};\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "/* pshm_ucase_bounce.c\n" msgstr "/* pshm_ucase_bounce.c\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " Licensed under GNU General Public License v2 or later.\n" "*/\n" "#include Ectype.hE\n" msgstr "" " Licensed under GNU General Public License v2 or later.\n" "*/\n" "#include Ectype.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "#include \"pshm_ucase.h\"\n" msgstr "#include \"pshm_ucase.h\"\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd;\n" " char *shmpath;\n" " struct shmbuf *shmp;\n" msgstr "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd;\n" " char *shmpath;\n" " struct shmbuf *shmp;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (argc != 2) {\n" " fprintf(stderr, \"Usage: %s /shm-path\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " if (argc != 2) {\n" " fprintf(stderr, \"Usage: %s /shm-path\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " shmpath = argv[1];\n" msgstr " shmpath = argv[1];\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Create shared memory object and set its size to the size\n" " of our structure. */\n" msgstr "" " /* Créer l'objet en mémoire partagée et le dimensionner\n" " à la taille de notre structure. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " fd = shm_open(shmpath, O_CREAT | O_EXCL | O_RDWR, 0600);\n" " if (fd == -1)\n" " errExit(\"shm_open\");\n" msgstr "" " fd = shm_open(shmpath, O_CREAT | O_EXCL | O_RDWR, 0600);\n" " if (fd == -1)\n" " errExit(\"shm_open\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (ftruncate(fd, sizeof(struct shmbuf)) == -1)\n" " errExit(\"ftruncate\");\n" msgstr "" " if (ftruncate(fd, sizeof(struct shmbuf)) == -1)\n" " errExit(\"ftruncate\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Map the object into the caller\\[aq]s address space. */\n" msgstr " /* Projeter l'objet dans l'espace d'adressage de l'appelant. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " shmp = mmap(NULL, sizeof(*shmp), PROT_READ | PROT_WRITE,\n" " MAP_SHARED, fd, 0);\n" " if (shmp == MAP_FAILED)\n" " errExit(\"mmap\");\n" msgstr "" " shmp = mmap(NULL, sizeof(*shmp), PROT_READ | PROT_WRITE,\n" " MAP_SHARED, fd, 0);\n" " if (shmp == MAP_FAILED)\n" " errExit(\"mmap\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Initialize semaphores as process-shared, with value 0. */\n" msgstr "" " /* Initialiser les sémaphores comme partagés entre processus avec\n" " la valeur B<0>. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (sem_init(&shmp-Esem1, 1, 0) == -1)\n" " errExit(\"sem_init-sem1\");\n" " if (sem_init(&shmp-Esem2, 1, 0) == -1)\n" " errExit(\"sem_init-sem2\");\n" msgstr "" " if (sem_init(&shmp-Esem1, 1, 0) == -1)\n" " errExit(\"sem_init-sem1\");\n" " if (sem_init(&shmp-Esem2, 1, 0) == -1)\n" " errExit(\"sem_init-sem2\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Wait for \\[aq]sem1\\[aq] to be posted by peer before touching\n" " shared memory. */\n" msgstr "" " /* Attendre que \\[aq]sem1\\[aq] ait été posté par le processus pair\n" " avant de toucher à la mémoire partagée. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (sem_wait(&shmp-Esem1) == -1)\n" " errExit(\"sem_wait\");\n" msgstr "" " if (sem_wait(&shmp-Esem1) == -1)\n" " errExit(\"sem_wait\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Convert data in shared memory into upper case. */\n" msgstr " /* Convertir en capitales les données en mémoire partagée. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " for (size_t j = 0; j E shmp-Ecnt; j++)\n" " shmp-Ebuf[j] = toupper((unsigned char) shmp-Ebuf[j]);\n" msgstr "" " for (size_t j = 0; j E shmp-Ecnt; j++)\n" " shmp-Ebuf[j] = toupper((unsigned char) shmp-Ebuf[j]);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Post \\[aq]sem2\\[aq] to tell the peer that it can now\n" " access the modified data in shared memory. */\n" msgstr "" " /* Poster \\[aq]sem2\\[aq] pour informer le processus pair qu'il peut \n" " dorénavant accéder aux données modifiées en mémoire partagée. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (sem_post(&shmp-Esem2) == -1)\n" " errExit(\"sem_post\");\n" msgstr "" " if (sem_post(&shmp-Esem2) == -1)\n" " errExit(\"sem_post\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Unlink the shared memory object. Even if the peer process\n" " is still using the object, this is okay. The object will\n" " be removed only after all open references are closed. */\n" msgstr "" " /* Supprimer le lien avec l'objet en mémoire partagée. Cela ne posera\n" " pas de problème, même si le processus pair utilise encore l'objet,\n" " car ce dernier ne sera supprimé que lorsque tous les liens ouverts\n" " qui y font référence auront été fermés. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " shm_unlink(shmpath);\n" msgstr " shm_unlink(shmpath);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" " exit(EXIT_SUCCESS);\n" "}\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "/* pshm_ucase_send.c\n" msgstr "/* pshm_ucase_send.c\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " Licensed under GNU General Public License v2 or later.\n" "*/\n" "#include Estring.hE\n" msgstr "" " Licensed under GNU General Public License v2 or later.\n" "*/\n" "#include Estring.hE\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd;\n" " char *shmpath, *string;\n" " size_t len;\n" " struct shmbuf *shmp;\n" msgstr "" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd;\n" " char *shmpath, *string;\n" " size_t len;\n" " struct shmbuf *shmp;\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (argc != 3) {\n" " fprintf(stderr, \"Usage: %s /shm-path string\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " if (argc != 3) {\n" " fprintf(stderr, \"Usage: %s /shm-path string\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " shmpath = argv[1];\n" " string = argv[2];\n" " len = strlen(string);\n" msgstr "" " shmpath = argv[1];\n" " string = argv[2];\n" " len = strlen(string);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (len E BUF_SIZE) {\n" " fprintf(stderr, \"String is too long\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" " if (len E BUF_SIZE) {\n" " fprintf(stderr, \"La chaîne est trop longue\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Open the existing shared memory object and map it\n" " into the caller\\[aq]s address space. */\n" msgstr "" " /* Ouvrir l'objet en mémoire partagée existant et le projeter\n" " dans l'espace d'adressage de l'appelant. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " fd = shm_open(shmpath, O_RDWR, 0);\n" " if (fd == -1)\n" " errExit(\"shm_open\");\n" msgstr "" " fd = shm_open(shmpath, O_RDWR, 0);\n" " if (fd == -1)\n" " errExit(\"shm_open\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Copy data into the shared memory object. */\n" msgstr " /* Copier les données dans l'objet en mémoire partagée. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " shmp-Ecnt = len;\n" " memcpy(&shmp-Ebuf, string, len);\n" msgstr "" " shmp-Ecnt = len;\n" " memcpy(&shmp-Ebuf, string, len);\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Tell peer that it can now access shared memory. */\n" msgstr "" " /* Informer le processus pair qu'il peut maintenant accéder à\n" " la mémoire partagée. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (sem_post(&shmp-Esem1) == -1)\n" " errExit(\"sem_post\");\n" msgstr "" " if (sem_post(&shmp-Esem1) == -1)\n" " errExit(\"sem_post\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " /* Wait until peer says that it has finished accessing\n" " the shared memory. */\n" msgstr "" " /* Attendre que le processus pair indique qu'il a fini d'accéder\n" " à la mémoire partagée. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " if (sem_wait(&shmp-Esem2) == -1)\n" " errExit(\"sem_wait\");\n" msgstr "" " if (sem_wait(&shmp-Esem2) == -1)\n" " errExit(\"sem_wait\");\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid " /* Write modified data in shared memory to standard output. */\n" msgstr "" " /* Afficher les données qui ont été modifiées en mémoire partagée \n" " sur la sortie standard. */\n" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " write(STDOUT_FILENO, &shmp-Ebuf, len);\n" " write(STDOUT_FILENO, \"\\en\", 1);\n" msgstr "" " write(STDOUT_FILENO, &shmp-Ebuf, len);\n" " write(STDOUT_FILENO, \"\\en\", 1);\n" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "31 octobre 2023" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "Pages du manuel de Linux 6.06" #. type: Plain text #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "" "#include Efcntl.hE\n" "#include Esemaphore.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Esys/mman.hE\n" "#include Esys/stat.hE\n" "#include Eunistd.hE\n" "\\&\n" "#define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); \\e\n" " } while (0)\n" "\\&\n" "#define BUF_SIZE 1024 /* Maximum size for exchanged string */\n" "\\&\n" "/* Define a structure that will be imposed on the shared\n" " memory object */\n" "\\&\n" "struct shmbuf {\n" " sem_t sem1; /* POSIX unnamed semaphore */\n" " sem_t sem2; /* POSIX unnamed semaphore */\n" " size_t cnt; /* Number of bytes used in \\[aq]buf\\[aq] */\n" " char buf[BUF_SIZE]; /* Data being transferred */\n" "};\n" msgstr "" #. type: Plain text #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "" "/* pshm_ucase_bounce.c\n" "\\&\n" " Licensed under GNU General Public License v2 or later.\n" "*/\n" "#include Ectype.hE\n" "\\&\n" "#include \"pshm_ucase.h\"\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd;\n" " char *shmpath;\n" " struct shmbuf *shmp;\n" "\\&\n" " if (argc != 2) {\n" " fprintf(stderr, \"Usage: %s /shm-path\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " shmpath = argv[1];\n" "\\&\n" " /* Create shared memory object and set its size to the size\n" " of our structure. */\n" "\\&\n" " fd = shm_open(shmpath, O_CREAT | O_EXCL | O_RDWR, 0600);\n" " if (fd == -1)\n" " errExit(\"shm_open\");\n" "\\&\n" " if (ftruncate(fd, sizeof(struct shmbuf)) == -1)\n" " errExit(\"ftruncate\");\n" "\\&\n" " /* Map the object into the caller\\[aq]s address space. */\n" "\\&\n" " shmp = mmap(NULL, sizeof(*shmp), PROT_READ | PROT_WRITE,\n" " MAP_SHARED, fd, 0);\n" " if (shmp == MAP_FAILED)\n" " errExit(\"mmap\");\n" "\\&\n" " /* Initialize semaphores as process-shared, with value 0. */\n" "\\&\n" " if (sem_init(&shmp-Esem1, 1, 0) == -1)\n" " errExit(\"sem_init-sem1\");\n" " if (sem_init(&shmp-Esem2, 1, 0) == -1)\n" " errExit(\"sem_init-sem2\");\n" "\\&\n" " /* Wait for \\[aq]sem1\\[aq] to be posted by peer before touching\n" " shared memory. */\n" "\\&\n" " if (sem_wait(&shmp-Esem1) == -1)\n" " errExit(\"sem_wait\");\n" "\\&\n" " /* Convert data in shared memory into upper case. */\n" "\\&\n" " for (size_t j = 0; j E shmp-Ecnt; j++)\n" " shmp-Ebuf[j] = toupper((unsigned char) shmp-Ebuf[j]);\n" "\\&\n" " /* Post \\[aq]sem2\\[aq] to tell the peer that it can now\n" " access the modified data in shared memory. */\n" "\\&\n" " if (sem_post(&shmp-Esem2) == -1)\n" " errExit(\"sem_post\");\n" "\\&\n" " /* Unlink the shared memory object. Even if the peer process\n" " is still using the object, this is okay. The object will\n" " be removed only after all open references are closed. */\n" "\\&\n" " shm_unlink(shmpath);\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: Plain text #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "" "/* pshm_ucase_send.c\n" "\\&\n" " Licensed under GNU General Public License v2 or later.\n" "*/\n" "#include Estring.hE\n" "\\&\n" "#include \"pshm_ucase.h\"\n" "\\&\n" "int\n" "main(int argc, char *argv[])\n" "{\n" " int fd;\n" " char *shmpath, *string;\n" " size_t len;\n" " struct shmbuf *shmp;\n" "\\&\n" " if (argc != 3) {\n" " fprintf(stderr, \"Usage: %s /shm-path string\\en\", argv[0]);\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " shmpath = argv[1];\n" " string = argv[2];\n" " len = strlen(string);\n" "\\&\n" " if (len E BUF_SIZE) {\n" " fprintf(stderr, \"String is too long\\en\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " /* Open the existing shared memory object and map it\n" " into the caller\\[aq]s address space. */\n" "\\&\n" " fd = shm_open(shmpath, O_RDWR, 0);\n" " if (fd == -1)\n" " errExit(\"shm_open\");\n" "\\&\n" " shmp = mmap(NULL, sizeof(*shmp), PROT_READ | PROT_WRITE,\n" " MAP_SHARED, fd, 0);\n" " if (shmp == MAP_FAILED)\n" " errExit(\"mmap\");\n" "\\&\n" " /* Copy data into the shared memory object. */\n" "\\&\n" " shmp-Ecnt = len;\n" " memcpy(&shmp-Ebuf, string, len);\n" "\\&\n" " /* Tell peer that it can now access shared memory. */\n" "\\&\n" " if (sem_post(&shmp-Esem1) == -1)\n" " errExit(\"sem_post\");\n" "\\&\n" " /* Wait until peer says that it has finished accessing\n" " the shared memory. */\n" "\\&\n" " if (sem_wait(&shmp-Esem2) == -1)\n" " errExit(\"sem_wait\");\n" "\\&\n" " /* Write modified data in shared memory to standard output. */\n" "\\&\n" " write(STDOUT_FILENO, &shmp-Ebuf, len);\n" " write(STDOUT_FILENO, \"\\en\", 1);\n" "\\&\n" " exit(EXIT_SUCCESS);\n" "}\n" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "Pages du manuel de Linux 6.7" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "30 mars 2023" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "Pages du manuel de Linux 6.04" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr "Pages du manuel de Linux (non publiées)"