Le 22/03/2022 à 11:34, Lucien Gentis a écrit :
Le 22/03/2022 à 11:29, Lucien Gentis a écrit :
Le 15/03/2022 à 11:01, Lucien Gentis a écrit :
Bonjour,
Prochainement, une proposition de mise à jour de cmsg.3.po
Bonjour,
Comme promis, une proposition de mise à jour de cmsg.3.po
Merci pour vos relectures
Lucien
# French translation of manpages
# This file is distributed under the same license as the manpages-l10n package.
# Copyright © of this file:
# Christophe Blaess <https://www.blaess.fr/christophe/>, 1996-2003.
# Stéphan Rafin <stephan.ra...@laposte.net>, 2002.
# Thierry Vignaud <tvign...@mandriva.com>, 1999, 2002.
# François Micaux, 2002.
# Alain Portal <apor...@univ-montp2.fr>, 2003-2008.
# Jean-Philippe Guérard <fevr...@tigreraye.org>, 2005-2006.
# Jean-Luc Coulon (f5ibh) <jean-luc.cou...@wanadoo.fr>, 2006-2007.
# Julien Cristau <jcris...@debian.org>, 2006-2007.
# Thomas Huriaux <thomas.huri...@gmail.com>, 2006-2008.
# Nicolas François <nicolas.franc...@centraliens.net>, 2006-2008.
# Florentin Duneau <fdun...@gmail.com>, 2006-2010.
# Simon Paillard <simon.paill...@resel.enst-bretagne.fr>, 2006, 2013-2014.
# Denis Barbier <barb...@debian.org>, 2006, 2010.
# David Prévot <da...@tilapin.org>, 2010-2014.
# Lucien Gentis <lucien.gen...@waika9.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: perkamon\n"
"POT-Creation-Date: 2022-02-10 20:56+0100\n"
"PO-Revision-Date: 2022-03-11 12:42+0100\n"
"Last-Translator: Lucien Gentis <lucien.gen...@waika9.com>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\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: 55,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
#. type: TH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "CMSG"
msgstr "CMSG"
#. type: TH
#: archlinux fedora-36 fedora-rawhide mageia-cauldron opensuse-tumbleweed
#, no-wrap
msgid "2021-03-22"
msgstr "22 mars 2021"
#. type: TH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "Linux"
msgstr "Linux"
#. type: TH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "Linux Programmer's Manual"
msgstr "Manuel du programmeur Linux"
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "NAME"
msgstr "NOM"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR - access ancillary data"
msgstr ""
"CMSG_ALIGN, CMSG_SPACE, CMSG_NXTHDR, CMSG_FIRSTHDR - Accéder aux "
"informations de service"
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "SYNOPSIS"
msgstr "SYNOPSIS"
#. type: Plain text
#: archlinux fedora-36 fedora-rawhide mageia-cauldron opensuse-tumbleweed
#, no-wrap
msgid "B<#include E<lt>sys/socket.hE<gt>>\n"
msgstr "B<#include E<lt>sys/socket.hE<gt>>\n"
#. type: Plain text
#: archlinux fedora-36 fedora-rawhide mageia-cauldron opensuse-tumbleweed
#, no-wrap
msgid ""
"B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>\n"
"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<,>\n"
"B< struct cmsghdr *>cmsgB<);>\n"
"B<size_t CMSG_ALIGN(size_t >I<length>B<);>\n"
"B<size_t CMSG_SPACE(size_t >I<length>B<);>\n"
"B<size_t CMSG_LEN(size_t >I<length>B<);>\n"
"B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>\n"
msgstr ""
"B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>\n"
"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<,>\n"
"B< struct cmsghdr *>cmsgB<);>\n"
"B<size_t CMSG_ALIGN(size_t >I<longueur>B<);>\n"
"B<size_t CMSG_SPACE(size_t >I<longueur>B<);>\n"
"B<size_t CMSG_LEN(size_t >I<longueur>B<);>\n"
"B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>\n"
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "DESCRIPTION"
msgstr "DESCRIPTION"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
msgid ""
"These macros are used to create and access control messages (also called "
"ancillary data) that are not a part of the socket payload. This control "
"information may include the interface the packet was received on, various "
"rarely used header fields, an extended error description, a set of file "
"descriptors, or UNIX credentials. For instance, control messages can be "
"used to send additional header fields such as IP options. Ancillary data is "
"sent by calling B<sendmsg>(2) and received by calling B<recvmsg>(2). See "
"their manual pages for more information."
msgstr ""
"Ces macros permettent de créer et accéder aux messages de contrôle (aussi "
"appelé informations de service) qui ne font pas partie de la charge utile "
"des sockets. Ces informations de contrôle peuvent inclure l'interface sur "
"laquelle le paquet a été reçu, des champs d'en-tête rarement employés, des "
"descriptions d'erreur approfondies, un ensemble de descripteurs de fichiers "
"ou des identificateurs UNIX. Par exemple, les messages de contrôle peuvent "
"être utilisés pour envoyer des champs d'en-tête supplémentaires tels que des "
"options IP. Les données de service sont émises à l'aide de B<sendmsg>(2) et "
"reçues à l'aide de B<recvmsg>(2). Reportez-vous à leurs pages de manuel "
"respectives pour plus d'informations."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"Ancillary data is a sequence of I<cmsghdr> structures with appended data. "
"See the specific protocol man pages for the available control message "
"types. The maximum ancillary buffer size allowed per socket can be set "
"using I</proc/sys/net/core/optmem_max>; see B<socket>(7)."
msgstr ""
"Une information de service est une séquence de structures I<cmsghdr> avec "
"des données ajoutées. Consultez les pages de manuel relatives aux protocoles "
"pour les types de message de commande disponibles. La taille maximale d'un "
"tampon de service par socket peut être définie à l'aide de I</proc/sys/net/"
"core/optmem_max>. Consultez B<socket>(7)."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid "The I<cmsghdr> structure is defined as follows:"
msgstr "La structure I<cmsghdr> est définie comme suit :"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid ""
"struct cmsghdr {\n"
" size_t cmsg_len; /* Data byte count, including header\n"
" (type is socklen_t in POSIX) */\n"
" int cmsg_level; /* Originating protocol */\n"
" int cmsg_type; /* Protocol-specific type */\n"
"/* followed by\n"
" unsigned char cmsg_data[]; */\n"
"};\n"
msgstr ""
"struct cmsghdr {\n"
" size_t cmsg_len; /* Nombre d'octets de données, incluant l'en-tête \n"
" (le type est socklen_t dans POSIX) */\n"
" int cmsg_level; /* Protocole d'origine */\n"
" int cmsg_type; /* Type spécifique au protocole */\n"
"/* suivi par unsigned char cmsg_data[]; */\n"
"};\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"The sequence of I<cmsghdr> structures should never be accessed directly. "
"Instead, use only the following macros:"
msgstr ""
"Plutôt que d'accéder directement à la séquence de structures I<cmsghdr>, il "
"est impératif d'utiliser les macros suivantes :"
#. type: IP
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "*"
msgstr "*"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
msgid ""
"B<CMSG_FIRSTHDR>() returns a pointer to the first I<cmsghdr> in the "
"ancillary data buffer associated with the passed I<msghdr>. It returns NULL "
"if there isn't enough space for a I<cmsghdr> in the buffer."
msgstr ""
"B<CMSG_FIRSTHDR>() renvoie un pointeur sur la première structure I<cmsghdr> "
"du tampon de données de service associé à la structure I<msghdr> passée en "
"paramètre. Elle renvoie NULL s'il n'y a pas assez de place pour une "
"structure I<cmsghdr> dans le tampon."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"B<CMSG_NXTHDR>() returns the next valid I<cmsghdr> after the passed "
"I<cmsghdr>. It returns NULL when there isn't enough space left in the "
"buffer."
msgstr ""
"B<CMSG_NXTHDR>() renvoie la prochaine structure I<cmsghdr> valable après la "
"structure I<cmsghdr> passée en paramètre. Elle renvoie NULL s'il n'y a plus "
"assez de place dans le tampon."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
msgid ""
"When initializing a buffer that will contain a series of I<cmsghdr> "
"structures (e.g., to be sent with B<sendmsg>(2)), that buffer should first "
"be zero-initialized to ensure the correct operation of B<CMSG_NXTHDR>()."
msgstr ""
"Lorsqu'on initialise un tampon qui contiendra une série de structures (à "
"envoyer par exemple à l'aide de B<sendmsg>(2)), ce tampon doit être "
"initialisé avec des zéros pour être sûr que B<CMSG_NXTHDR>() fonctionnera "
"correctement."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"B<CMSG_ALIGN>(), given a length, returns it including the required "
"alignment. This is a constant expression."
msgstr ""
"B<CMSG_ALIGN>(), avec comme argument une longueur, la renvoie en incluant "
"l'alignement nécessaire. C'est une expression constante."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"B<CMSG_SPACE>() returns the number of bytes an ancillary element with "
"payload of the passed data length occupies. This is a constant expression."
msgstr ""
"B<CMSG_SPACE>() renvoie le nombre d'octets qu'occupe un élément de service "
"avec une charge utile de la longueur passée en paramètre. C'est une "
"expression constante."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
msgid ""
"B<CMSG_DATA>() returns a pointer to the data portion of a I<cmsghdr>. The "
"pointer returned cannot be assumed to be suitably aligned for accessing "
"arbitrary payload data types. Applications should not cast it to a pointer "
"type matching the payload, but should instead use B<memcpy>(3) to copy data "
"to or from a suitably declared object."
msgstr ""
"B<CMSG_DATA>() renvoie un pointeur vers la partie données d'une structure "
"I<cmsghdr>. Il n'est pas certain que le pointeur renvoyé soit correctement "
"aligné pour accéder à des données de charge utile de type quelconque. Les "
"applications ne doivent pas forcer son type à un type de pointeur "
"correspondant à celui de la charge utile ; elles doivent utiliser "
"B<memcpy>(3) pour copier les données vers ou depuis un objet déclaré de "
"manière appropriée."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"B<CMSG_LEN>() returns the value to store in the I<cmsg_len> member of the "
"I<cmsghdr> structure, taking into account any necessary alignment. It takes "
"the data length as an argument. This is a constant expression."
msgstr ""
"B<CMSG_LEN>() renvoie la valeur à stocker dans le membre I<cmsg_len> de la "
"structure I<cmsghdr>, en tenant compte des alignements nécessaires. Elle "
"prend en paramètre la longueur des données. C'est une expression constante."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"To create ancillary data, first initialize the I<msg_controllen> member of "
"the I<msghdr> with the length of the control message buffer. Use "
"B<CMSG_FIRSTHDR>() on the I<msghdr> to get the first control message and "
"B<CMSG_NXTHDR>() to get all subsequent ones. In each control message, "
"initialize I<cmsg_len> (with B<CMSG_LEN>()), the other I<cmsghdr> header "
"fields, and the data portion using B<CMSG_DATA>(). Finally, the "
"I<msg_controllen> field of the I<msghdr> should be set to the sum of the "
"B<CMSG_SPACE>() of the length of all control messages in the buffer. For "
"more information on the I<msghdr>, see B<recvmsg>(2)."
msgstr ""
"Pour créer des données de service, il faut tout d'abord initialiser le "
"membre I<msg_controllen> de la structure I<msghdr> avec la longueur du "
"tampon du message de contrôle. Utilisez B<CMSG_FIRSTHDR>() sur la structure "
"I<msghdr> pour obtenir le premier message de contrôle, puis B<CMSG_NXTHDR>() "
"pour obtenir les suivants. Dans chaque message de contrôle, initialisez "
"I<cmsg_len> (avec B<CMSG_LEN>()), les autres champs d'en-tête de I<cmsghdr> "
"et la partie des données avec B<CMSG_DATA>(). Enfin, il faut définir le "
"membre I<msg_controllen> de la structure I<msghdr> avec la somme des valeurs "
"de retour de B<CMSG_SPACE>() pour les longueurs de tous les messages de "
"contrôle contenus dans le tampon..Pour plus d'informations sur la structure "
"I<msghdr>, consultez B<recvmsg>(2)."
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "CONFORMING TO"
msgstr "CONFORMITÉ"
#. https://www.austingroupbugs.net/view.php?id=978#c3242
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
msgid ""
"This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, the "
"IPv6 advanced API described in RFC\\ 2292 and SUSv2. B<CMSG_FIRSTHDR>(), "
"B<CMSG_NXTHDR>(), and B<CMSG_DATA>() are specified in POSIX.1-2008. "
"B<CMSG_SPACE>() and B<CMSG_LEN>() will be included in the next POSIX "
"release (Issue 8)."
msgstr ""
"Le modèle des données de service est conforme à POSIX.1g draft, 4.4BSD-Lite, "
"l'API IPv6 avancée décrite dans la RFC\\ 2292 et SUSv2. B<CMSG_FIRSTHDR>(), "
"B<CMSG_NXTHDR>() et B<CMSG_DATA>() sont spécifiées dans POSIX.1-2008. "
"B<CMSG_SPACE>() et B<CMSG_LEN>() seront incluses dans la prochaine version "
"de POSIX (édition 8)."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
msgid "B<CMSG_ALIGN>() is a Linux extension."
msgstr "B<CMSG_ALIGN>() est une extension Linux."
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "NOTES"
msgstr "NOTES"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"For portability, ancillary data should be accessed using only the macros "
"described here. B<CMSG_ALIGN>() is a Linux extension and should not be "
"used in portable programs."
msgstr ""
"Pour des questions de portabilité, les données de service ne doivent être "
"manipulées qu'avec les macros décrites ici. B<CMSG_ALIGN>() est une "
"extension Linux et ne doit pas être utilisée dans un programme portable."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
msgid ""
"In Linux, B<CMSG_LEN>(), B<CMSG_DATA>(), and B<CMSG_ALIGN>() are constant "
"expressions (assuming their argument is constant), meaning that these values "
"can be used to declare the size of global variables. This may not be "
"portable, however."
msgstr ""
"Sous Linux, B<CMSG_LEN>(), B<CMSG_DATA>() et B<CMSG_ALIGN>() sont des "
"expressions constantes (si leur argument est une constante) ; elles peuvent "
"donc être utilisées pour déclarer la taille de variables globales. Cela peut "
"néanmoins ne pas être portable."
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
#, no-wrap
msgid "EXAMPLES"
msgstr "EXEMPLES"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"This code looks for the B<IP_TTL> option in a received ancillary buffer:"
msgstr ""
"Ce code recherche l'option B<IP_TTL> dans un tampon de service reçu\\ :"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
#, no-wrap
msgid ""
"struct msghdr msgh;\n"
"struct cmsghdr *cmsg;\n"
"int received_ttl;\n"
msgstr ""
"struct msghdr msgh;\n"
"struct cmsghdr *cmsg;\n"
"int received_ttl;\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "/* Receive auxiliary data in msgh */\n"
msgstr "/* Recevoir des données de service dans msgh */\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
#, no-wrap
msgid ""
"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
" if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
" && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
" memcpy(&receive_ttl, CMSG_DATA(cmsg), sizeof(received_ttl));\n"
" break;\n"
" }\n"
"}\n"
msgstr ""
"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
" if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
" && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
" memcpy(&receive_ttl, CMSG_DATA(cmsg), sizeof(received_ttl));\n"
" break;\n"
" }\n"
"}\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid ""
"if (cmsg == NULL) {\n"
" /* Error: IP_TTL not enabled or small buffer or I/O error */\n"
"}\n"
msgstr ""
"if (cmsg == NULL) {\n"
" /* Erreur : IP_TTL non activée, tampon trop petit ou erreur d'entrée/sortie */\n"
"}\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid ""
"The code below passes an array of file descriptors over a UNIX domain socket "
"using B<SCM_RIGHTS>:"
msgstr ""
"Le code ci-dessous passe un tableau de descripteurs de fichier au travers "
"d'un socket de domaine UNIX à l'aide de B<SCM_RIGHTS>\\ :"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
#, no-wrap
msgid ""
"struct msghdr msg = { 0 };\n"
"struct cmsghdr *cmsg;\n"
"int myfds[NUM_FD]; /* Contains the file descriptors to pass */\n"
"char iobuf[1];\n"
"struct iovec io = {\n"
" .iov_base = iobuf,\n"
" .iov_len = sizeof(iobuf)\n"
"};\n"
"union { /* Ancillary data buffer, wrapped in a union\n"
" in order to ensure it is suitably aligned */\n"
" char buf[CMSG_SPACE(sizeof(myfds))];\n"
" struct cmsghdr align;\n"
"} u;\n"
msgstr ""
"struct msghdr msg = { 0 };\n"
"struct cmsghdr *cmsg;\n"
"int myfds[NUM_FD]; /* Contient les descripteurs de fichier à passer */\n"
"char iobuf[1];\n"
"struct iovec io = {\n"
" .iov_base = iobuf,\n"
" .iov_len = sizeof(iobuf)\n"
"};\n"
"union { /* Tampon des données de service empaqueté dans une union\n"
" pour être sûr qu'il soit correctement aligné */\n"
" char buf[CMSG_SPACE(sizeof(myfds))];\n"
" struct cmsghdr align;\n"
"} u;\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
#, no-wrap
msgid ""
"msg.msg_iov = &io;\n"
"msg.msg_iovlen = 1;\n"
"msg.msg_control = u.buf;\n"
"msg.msg_controllen = sizeof(u.buf);\n"
"cmsg = CMSG_FIRSTHDR(&msg);\n"
"cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
"cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(myfds));\n"
"memcpy(CMSG_DATA(cmsg), myfds, sizeof(myfds));\n"
msgstr ""
"msg.msg_iov = &io;\n"
"msg.msg_iovlen = 1;\n"
"msg.msg_control = u.buf;\n"
"msg.msg_controllen = sizeof(u.buf);\n"
"cmsg = CMSG_FIRSTHDR(&msg);\n"
"cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
"cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(myfds));\n"
"memcpy(CMSG_DATA(cmsg), myfds, sizeof(myfds));\n"
#. type: Plain text
#: archlinux fedora-36 fedora-rawhide mageia-cauldron opensuse-tumbleweed
msgid ""
"For a complete code example that shows passing of file descriptors over a "
"UNIX domain socket, see B<seccomp_unotify>(2)."
msgstr ""
"Pour un exemple de code complet qui montre la transmission de descripteurs "
"de fichier à travers un socket de domaine UNIX, voir B<seccomp_unotify>(2)."
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "SEE ALSO"
msgstr "VOIR AUSSI"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid "B<recvmsg>(2), B<sendmsg>(2)"
msgstr "B<recvmsg>(2), B<sendmsg>(2)"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
msgid "RFC\\ 2292"
msgstr "RFC\\ 2292"
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4
#, no-wrap
msgid "COLOPHON"
msgstr "COLOPHON"
#. type: Plain text
#: archlinux fedora-36 fedora-rawhide mageia-cauldron
msgid ""
"This page is part of release 5.13 of the Linux I<man-pages> project. A "
"description of the project, information about reporting bugs, and the latest "
"version of this page, can be found at \\%https://www.kernel.org/doc/man-"
"pages/."
msgstr ""
"Cette page fait partie de la publication 5.13 du projet I<man-pages> 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/."
#. type: TH
#: debian-bullseye debian-unstable
#, no-wrap
msgid "2020-11-01"
msgstr "1 novembre 2020"
#. type: Plain text
#: debian-bullseye debian-unstable
#, no-wrap
msgid ""
"B<#include E<lt>sys/socket.hE<gt>>\n"
"B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>\n"
"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<,>\n"
"B< struct cmsghdr *>cmsgB<);>\n"
"B<size_t CMSG_ALIGN(size_t >I<length>B<);>\n"
"B<size_t CMSG_SPACE(size_t >I<length>B<);>\n"
"B<size_t CMSG_LEN(size_t >I<length>B<);>\n"
"B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>\n"
msgstr ""
"B<#include E<lt>sys/socket.hE<gt>>\n"
"B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>\n"
"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<,>\n"
"B< struct cmsghdr *>cmsgB<);>\n"
"B<size_t CMSG_ALIGN(size_t >I<length>B<);>\n"
"B<size_t CMSG_SPACE(size_t >I<length>B<);>\n"
"B<size_t CMSG_LEN(size_t >I<length>B<);>\n"
"B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>\n"
#. type: Plain text
#: debian-bullseye debian-unstable
msgid ""
"This page is part of release 5.10 of the Linux I<man-pages> project. A "
"description of the project, information about reporting bugs, and the latest "
"version of this page, can be found at \\%https://www.kernel.org/doc/man-"
"pages/."
msgstr ""
"Cette page fait partie de la publication 5.10 du projet I<man-pages> 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/."
#. type: TH
#: opensuse-leap-15-4
#, no-wrap
msgid "2017-09-15"
msgstr "15 septembre 2017"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<#include E<lt>sys/socket.hE<gt>>"
msgstr "B<#include E<lt>sys/socket.hE<gt>>"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>"
msgstr "B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid ""
"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<, struct cmsghdr "
"*>I<cmsg>B<);>"
msgstr ""
"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<, struct cmsghdr "
"*>I<cmsg>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<size_t CMSG_ALIGN(size_t >I<length>B<);>"
msgstr "B<size_t CMSG_ALIGN(size_t >I<longueur>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<size_t CMSG_SPACE(size_t >I<length>B<);>"
msgstr "B<size_t CMSG_SPACE(size_t >I<longueur>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<size_t CMSG_LEN(size_t >I<length>B<);>"
msgstr "B<size_t CMSG_LEN(size_t >I<longueur>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>"
msgstr "B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid ""
"These macros are used to create and access control messages (also called "
"ancillary data) that are not a part of the socket payload. This control "
"information may include the interface the packet was received on, various "
"rarely used header fields, an extended error description, a set of file "
"descriptors or UNIX credentials. For instance, control messages can be used "
"to send additional header fields such as IP options. Ancillary data is sent "
"by calling B<sendmsg>(2) and received by calling B<recvmsg>(2). See their "
"manual pages for more information."
msgstr ""
"Ces macros sont utilisées pour créer et accéder aux messages de contrôle "
"(aussi appelé informations de service) qui ne font pas partie de la charge "
"utile des sockets. Ces informations de contrôle peuvent inclure l'interface "
"sur laquelle le paquet a été reçu, des champs d'en-tête rarement employés, "
"des descriptions d'erreur approfondies, un ensemble de descripteurs de "
"fichiers ou des identificateurs UNIX. Par exemple, les messages de contrôle "
"peuvent être utilisés pour envoyer des champs d'en-tête supplémentaires tels "
"que des options IP. Les données de service sont envoyées avec B<sendmsg>(2) "
"et reçues avec B<recvmsg>(2). Reportez-vous à leurs pages de manuel "
"respectives pour plus d'informations."
#. type: Plain text
#: opensuse-leap-15-4
msgid ""
"B<CMSG_FIRSTHDR>() returns a pointer to the first I<cmsghdr> in the "
"ancillary data buffer associated with the passed I<msghdr>."
msgstr ""
"B<CMSG_FIRSTHDR>() renvoie un pointeur sur la première structure I<cmsghdr> "
"du tampon de données de service associé à la structure I<msghdr> passé en "
"paramètre."
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<CMSG_DATA>() returns a pointer to the data portion of a I<cmsghdr>."
msgstr ""
"B<CMSG_DATA>() renvoie un pointeur sur une partie des données d'une "
"structure I<cmsghdr>."
#. type: Plain text
#: opensuse-leap-15-4
msgid ""
"When the control message buffer is too short to store all messages, the "
"B<MSG_CTRUNC> flag is set in the I<msg_flags> member of the I<msghdr>."
msgstr ""
"Lorsque le tampon des messages de contrôle est trop petit pour stocker tous "
"les messages, le drapeau B<MSG_CTRUNC> est défini dans le membre "
"I<msg_flags> de la structure I<msghdr>."
#. type: Plain text
#: opensuse-leap-15-4
msgid ""
"This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, the "
"IPv6 advanced API described in RFC\\ 2292 and SUSv2. B<CMSG_ALIGN>() is a "
"Linux extension."
msgstr ""
"Le modèle des données de service est conforme à POSIX.1g draft, 4.4BSD-Lite, "
"«\\ IPv6 advanced API\\ » décrite dans la RFC\\ 2292 et SUSv2. "
"B<CMSG_ALIGN>() est une extension Linux."
#. type: Plain text
#: opensuse-leap-15-4
msgid ""
"In Linux, B<CMSG_LEN>(), B<CMSG_DATA>(), and B<CMSG_ALIGN>() are constant "
"expressions (assuming their argument is constant); this could be used to "
"declare the size of global variables. This may not be portable, however."
msgstr ""
"Sous Linux, B<CMSG_LEN>(), B<CMSG_DATA>(), et B<CMSG_ALIGN>() sont des "
"expressions constantes (si leur argument est une constante) ; elles peuvent "
"donc être utilisées pour déclarer la taille de variables globales. Cela peut "
"néanmoins ne pas être portable."
#. type: SH
#: opensuse-leap-15-4
#, no-wrap
msgid "EXAMPLE"
msgstr "EXEMPLE"
#. type: Plain text
#: opensuse-leap-15-4
#, no-wrap
msgid ""
"struct msghdr msgh;\n"
"struct cmsghdr *cmsg;\n"
"int *ttlptr;\n"
"int received_ttl;\n"
msgstr ""
"struct msghdr msgh;\n"
"struct cmsghdr *cmsg;\n"
"int *ttlptr;\n"
"int received_ttl;\n"
#. type: Plain text
#: opensuse-leap-15-4
#, no-wrap
msgid ""
"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
" if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
" && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
" ttlptr = (int *) CMSG_DATA(cmsg);\n"
" received_ttl = *ttlptr;\n"
" break;\n"
" }\n"
"}\n"
msgstr ""
"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
" if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
" && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
" ttlptr = (int *) CMSG_DATA(cmsg);\n"
" received_ttl = *ttlptr;\n"
" break;\n"
" }\n"
"}\n"
#. type: Plain text
#: opensuse-leap-15-4
#, no-wrap
msgid ""
"struct msghdr msg = { 0 };\n"
"struct cmsghdr *cmsg;\n"
"int myfds[NUM_FD]; /* Contains the file descriptors to pass */\n"
"int *fdptr;\n"
"char iobuf[1];\n"
"struct iovec io = {\n"
" .iov_base = iobuf,\n"
" .iov_len = sizeof(iobuf)\n"
"};\n"
"union { /* Ancillary data buffer, wrapped in a union\n"
" in order to ensure it is suitably aligned */\n"
" char buf[CMSG_SPACE(sizeof(myfds))];\n"
" struct cmsghdr align;\n"
"} u;\n"
msgstr ""
"struct msghdr msg = { 0 };\n"
"struct cmsghdr *cmsg;\n"
"int myfds[NUM_FD]; /* Contient les descripteurs de fichier à transmettre */\n"
"int *fdptr;\n"
"char iobuf[1];\n"
"struct iovec io = {\n"
" .iov_base = iobuf,\n"
" .iov_len = sizeof(iobuf)\n"
"};\n"
"union { /* Tampon des données de service empaqueté dans une union\n"
" pour être sûr qu'il soit correctement aligné */\n"
" char buf[CMSG_SPACE(sizeof(myfds))];\n"
" struct cmsghdr align;\n"
"} u;\n"
#. type: Plain text
#: opensuse-leap-15-4
#, no-wrap
msgid ""
"msg.msg_iov = &io;\n"
"msg.msg_iovlen = 1;\n"
"msg.msg_control = u.buf;\n"
"msg.msg_controllen = sizeof(u.buf);\n"
"cmsg = CMSG_FIRSTHDR(&msg);\n"
"cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
"cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(int) * NUM_FD);\n"
"fdptr = (int *) CMSG_DATA(cmsg); /* Initialize the payload */\n"
"memcpy(fdptr, myfds, NUM_FD * sizeof(int));\n"
msgstr ""
"msg.msg_iov = &io;\n"
"msg.msg_iovlen = 1;\n"
"msg.msg_control = u.buf;\n"
"msg.msg_controllen = sizeof(u.buf);\n"
"cmsg = CMSG_FIRSTHDR(&msg);\n"
"cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
"cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(int) * NUM_FD);\n"
"fdptr = (int *) CMSG_DATA(cmsg); /* Initialise la charge utile */\n"
"memcpy(fdptr, myfds, NUM_FD * sizeof(int));\n"
#. type: Plain text
#: opensuse-leap-15-4
msgid ""
"This page is part of release 4.16 of the Linux I<man-pages> project. A "
"description of the project, information about reporting bugs, and the latest "
"version of this page, can be found at \\%https://www.kernel.org/doc/man-"
"pages/."
msgstr ""
"Cette page fait partie de la publication 4.16 du projet I<man-pages> 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/."
--- cmsg.3.po.orig 2022-03-08 13:20:02.693119257 +0100
+++ cmsg.3.po 2022-03-11 12:33:33.203259818 +0100
@@ -15,19 +15,21 @@
# Simon Paillard <simon.paill...@resel.enst-bretagne.fr>, 2006, 2013-2014.
# Denis Barbier <barb...@debian.org>, 2006, 2010.
# David Prévot <da...@tilapin.org>, 2010-2014.
+# Lucien Gentis <lucien.gen...@waika9.com>, 2022.
msgid ""
msgstr ""
"Project-Id-Version: perkamon\n"
"POT-Creation-Date: 2022-02-10 20:56+0100\n"
-"PO-Revision-Date: 2018-09-10 20:55+0000\n"
-"Last-Translator: Weblate Admin <jean-bapti...@holcroft.fr>\n"
+"PO-Revision-Date: 2022-03-11 12:33+0100\n"
+"Last-Translator: Lucien Gentis <lucien.gen...@waika9.com>\n"
"Language-Team: French <debian-l10n-french@lists.debian.org>\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: Weblate 3.1.1\n"
+"X-Generator: Poedit 2.4.2\n"
+"X-Poedit-Bookmarks: 55,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
#. type: TH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -97,6 +99,13 @@
"B<size_t CMSG_LEN(size_t >I<length>B<);>\n"
"B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>\n"
msgstr ""
+"B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>\n"
+"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<,>\n"
+"B< struct cmsghdr *>cmsgB<);>\n"
+"B<size_t CMSG_ALIGN(size_t >I<longueur>B<);>\n"
+"B<size_t CMSG_SPACE(size_t >I<longueur>B<);>\n"
+"B<size_t CMSG_LEN(size_t >I<longueur>B<);>\n"
+"B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>\n"
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -108,7 +117,6 @@
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
-#, fuzzy
msgid ""
"These macros are used to create and access control messages (also called "
"ancillary data) that are not a part of the socket payload. This control "
@@ -119,21 +127,20 @@
"sent by calling B<sendmsg>(2) and received by calling B<recvmsg>(2). See "
"their manual pages for more information."
msgstr ""
-"Ces macros sont utilisées pour créer et accéder aux messages de contrôle "
-"(aussi appelé informations de service) qui ne font pas partie du trafic "
-"normal des sockets. Ces informations de contrôle peuvent inclure l'interface "
-"sur laquelle le paquet a été reçu, des champs d'en-tête rarement employés, "
-"des descriptions d'erreur approfondies, un ensemble de descripteurs de "
-"fichiers ou des identificateurs UNIX. Par exemple, les messages de contrôle "
-"peuvent être utilisés pour envoyer des champs d'en-tête supplémentaires tels "
-"que des options IP. Les données de service sont émises avec B<sendmsg>(2) et "
-"reçues avec B<recvmsg>(2). Reportez-vous à leur page de manuel respective "
-"pour plus d'informations."
+"Ces macros permettent de créer et accéder aux messages de contrôle (aussi "
+"appelé informations de service) qui ne font pas partie de la charge utile "
+"des sockets. Ces informations de contrôle peuvent inclure l'interface sur "
+"laquelle le paquet a été reçu, des champs d'en-tête rarement employés, des "
+"descriptions d'erreur approfondies, un ensemble de descripteurs de fichiers "
+"ou des identificateurs UNIX. Par exemple, les messages de contrôle peuvent "
+"être utilisés pour envoyer des champs d'en-tête supplémentaires tels que des "
+"options IP. Les données de service sont émises à l'aide de B<sendmsg>(2) et "
+"reçues à l'aide de B<recvmsg>(2). Reportez-vous à leurs pages de manuel "
+"respectives pour plus d'informations."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
-#, fuzzy
msgid ""
"Ancillary data is a sequence of I<cmsghdr> structures with appended data. "
"See the specific protocol man pages for the available control message "
@@ -141,24 +148,21 @@
"using I</proc/sys/net/core/optmem_max>; see B<socket>(7)."
msgstr ""
"Une information de service est une séquence de structures I<cmsghdr> avec "
-"des données ajoutées. Cette séquence ne doit être manipulée qu'au moyen des "
-"macros décrites dans cette page de manuel, et jamais directement. Consultez "
-"les pages relatives aux protocoles des types de message de commande "
-"disponibles. La taille maximale d'un tampon de service par socket peut être "
-"définie à l'aide de I</proc/sys/net/core/optmem_max>. Consultez B<socket>(7)."
+"des données ajoutées. Consultez les pages de manuel relatives aux protocoles "
+"pour les types de message de commande disponibles. La taille maximale d'un "
+"tampon de service par socket peut être définie à l'aide de I</proc/sys/net/"
+"core/optmem_max>. Consultez B<socket>(7)."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
-#, fuzzy
msgid "The I<cmsghdr> structure is defined as follows:"
-msgstr ""
-"La structure I<servent> est définie dans I<E<lt>netdb.hE<gt>> ainsi\\ :"
+msgstr "La structure I<cmsghdr> est définie comme suit :"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
-#, fuzzy, no-wrap
+#, no-wrap
msgid ""
"struct cmsghdr {\n"
" size_t cmsg_len; /* Data byte count, including header\n"
@@ -170,10 +174,12 @@
"};\n"
msgstr ""
"struct cmsghdr {\n"
-" socklen_t cmsg_len; /* Nombre d'octets de données, incluant l'en-tête */\n"
-" int cmsg_level; /* Protocole d'origine */\n"
-" int cmsg_type; /* Type spécifique au protocole */\n"
-" /* suivi par unsigned char cmsg_data[]; */\n"
+" size_t cmsg_len; /* Nombre d'octets de données, incluant l'en-tête \n"
+" (le type est socklen_t dans POSIX) */\n"
+" int cmsg_level; /* Protocole d'origine */\n"
+" int cmsg_type; /* Type spécifique au protocole */\n"
+"/* suivi par\n"
+" unsigned char cmsg_data[]; */\n"
"};\n"
#. type: Plain text
@@ -183,25 +189,28 @@
"The sequence of I<cmsghdr> structures should never be accessed directly. "
"Instead, use only the following macros:"
msgstr ""
+"Plutôt que d'accéder directement à la séquence de structures I<cmsghdr>, il "
+"est impératif d'utiliser les macros suivantes :"
#. type: IP
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "*"
-msgstr "–"
+msgstr "*"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
-#, fuzzy
msgid ""
"B<CMSG_FIRSTHDR>() returns a pointer to the first I<cmsghdr> in the "
"ancillary data buffer associated with the passed I<msghdr>. It returns NULL "
"if there isn't enough space for a I<cmsghdr> in the buffer."
msgstr ""
-"B<CMSG_FIRSTHDR>() renvoie un pointeur sur la première I<cmsghdr> du tampon "
-"de données de service associé au I<msghdr> passé."
+"B<CMSG_FIRSTHDR>() renvoie un pointeur sur la première structure I<cmsghdr> "
+"du tampon de données de service associé à la structure I<msghdr> passée en "
+"paramètre. Elle renvoie NULL s'il n'y a pas assez de place pour une "
+"structure I<cmsghdr> dans le tampon."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -211,9 +220,9 @@
"I<cmsghdr>. It returns NULL when there isn't enough space left in the "
"buffer."
msgstr ""
-"B<CMSG_NXTHDR>() renvoie le prochain I<cmsghdr> valable suivant après le "
-"I<cmsghdr> transmis. Elle renvoie NULL s'il n'y a plus assez de place dans "
-"le tampon."
+"B<CMSG_NXTHDR>() renvoie la prochaine structure I<cmsghdr> valable après la "
+"structure I<cmsghdr> passée en paramètre. Elle renvoie NULL s'il n'y a plus "
+"assez de place dans le tampon."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -223,6 +232,10 @@
"structures (e.g., to be sent with B<sendmsg>(2)), that buffer should first "
"be zero-initialized to ensure the correct operation of B<CMSG_NXTHDR>()."
msgstr ""
+"Lorsqu'on initialise un tampon qui contiendra une série de structures (à "
+"envoyer par exemple à l'aide de B<sendmsg>(2)), ce tampon doit être "
+"initialisé avec des zéros pour être sûr que B<CMSG_NXTHDR>() fonctionnera "
+"correctement."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -231,8 +244,8 @@
"B<CMSG_ALIGN>(), given a length, returns it including the required "
"alignment. This is a constant expression."
msgstr ""
-"B<CMSG_ALIGN>(), avec comme argument une longueur, renvoie l'alignement "
-"nécessaire. C'est une expression constante."
+"B<CMSG_ALIGN>(), avec comme argument une longueur, la renvoie en incluant "
+"l'alignement nécessaire. C'est une expression constante."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -241,9 +254,9 @@
"B<CMSG_SPACE>() returns the number of bytes an ancillary element with "
"payload of the passed data length occupies. This is a constant expression."
msgstr ""
-"B<CMSG_SPACE>() renvoie le nombre d'octets d'un élément de service avec la "
-"charge utile de la longueur passée en paramètre. C'est une expression "
-"constante."
+"B<CMSG_SPACE>() renvoie le nombre d'octets qu'occupe un élément de service "
+"avec une charge utile de la longueur passée en paramètre. C'est une "
+"expression constante."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -255,6 +268,13 @@
"type matching the payload, but should instead use B<memcpy>(3) to copy data "
"to or from a suitably declared object."
msgstr ""
+"B<CMSG_DATA>() renvoie un pointeur vers la partie données d'une structure "
+"I<cmsghdr>. Il n'est pas certain que le pointeur renvoyé soit correctement "
+"aligné pour accéder à des données de charge utile de type quelconque. Les "
+"applications ne doivent pas forcer son type à un type de pointeur "
+"correspondant à celui de la charge utile ; elles doivent utiliser "
+"B<memcpy>(3) pour copier les données vers ou depuis un objet déclaré de "
+"manière appropriée."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -265,8 +285,8 @@
"the data length as an argument. This is a constant expression."
msgstr ""
"B<CMSG_LEN>() renvoie la valeur à stocker dans le membre I<cmsg_len> de la "
-"structure I<cmsghdr>, en tenant compte des alignements. Elle prend en "
-"paramètre la longueur des données. C'est une expression constante."
+"structure I<cmsghdr>, en tenant compte des alignements nécessaires. Elle "
+"prend en paramètre la longueur des données. C'est une expression constante."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -284,14 +304,15 @@
msgstr ""
"Pour créer des données de service, il faut tout d'abord initialiser le "
"membre I<msg_controllen> de la structure I<msghdr> avec la longueur du "
-"message de contrôle. Utilisez B<CMSG_FIRSTHDR>() sur la structure I<msghdr> "
-"pour obtenir le premier message de contrôle, puis B<CMSG_NXTHDR>() pour "
-"obtenir les suivants. Dans chaque message de contrôle, initialisez "
-"I<cmsg_len> (avec B<CMSG_LEN>()), les autres champs d'en-tête de I<cmsghdr>, "
-"et la partie de données avec B<CMSG_DATA>(). Enfin, il faut définir le "
-"membre I<msg_controllen> de la structure I<msghdr> avec la somme de tous les "
-"messages de contrôle dans le tampon renvoyé par B<CMSG_SPACE>().Pour plus "
-"d'informations sur I<msghdr>, consultez B<recvmsg>(2)."
+"tampon du message de contrôle. Utilisez B<CMSG_FIRSTHDR>() sur la structure "
+"I<msghdr> pour obtenir le premier message de contrôle, puis B<CMSG_NXTHDR>() "
+"pour obtenir les suivants. Dans chaque message de contrôle, initialisez "
+"I<cmsg_len> (avec B<CMSG_LEN>()), les autres champs d'en-tête de I<cmsghdr> "
+"et la partie des données avec B<CMSG_DATA>(). Enfin, il faut définir le "
+"membre I<msg_controllen> de la structure I<msghdr> avec la somme des valeurs "
+"de retour de B<CMSG_SPACE>() pour les longueurs de tous les messages de "
+"contrôle contenus dans le tampon..Pour plus d'informations sur la structure "
+"I<msghdr>, consultez B<recvmsg>(2)."
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -300,15 +321,10 @@
msgid "CONFORMING TO"
msgstr "CONFORMITÉ"
-#. https://www.austingroupbugs.net/view.php?id=978#c3242
+#. https://www.austingroupbugs.net/view.php?id=978#c3242
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
-#, fuzzy
-#| msgid ""
-#| "This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, "
-#| "the IPv6 advanced API described in RFC\\ 2292 and SUSv2. "
-#| "B<CMSG_ALIGN>() is a Linux extension."
msgid ""
"This ancillary data model conforms to the POSIX.1g draft, 4.4BSD-Lite, the "
"IPv6 advanced API described in RFC\\ 2292 and SUSv2. B<CMSG_FIRSTHDR>(), "
@@ -316,15 +332,17 @@
"B<CMSG_SPACE>() and B<CMSG_LEN>() will be included in the next POSIX "
"release (Issue 8)."
msgstr ""
-"Le modèle des données de service est conforme à POSIX.1g draft, BSD\\ 4.4-"
-"Lite, «\\ IPv6 advanced API\\ » décrite dans la RFC\\ 2292 et SUSv2. "
-"B<CMSG_ALIGN>() est une extension Linux."
+"Le modèle des données de service est conforme à POSIX.1g draft, 4.4BSD-Lite, "
+"l'API IPv6 avancée décrite dans la RFC\\ 2292 et SUSv2. B<CMSG_FIRSTHDR>(), "
+"B<CMSG_NXTHDR>() et B<CMSG_DATA>() sont spécifiées dans POSIX.1-2008. "
+"B<CMSG_SPACE>() et B<CMSG_LEN>() seront incluses dans la prochaine version "
+"de POSIX (édition 8)."
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
msgid "B<CMSG_ALIGN>() is a Linux extension."
-msgstr ""
+msgstr "B<CMSG_ALIGN>() est une extension Linux."
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -348,14 +366,13 @@
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
-#, fuzzy
msgid ""
"In Linux, B<CMSG_LEN>(), B<CMSG_DATA>(), and B<CMSG_ALIGN>() are constant "
"expressions (assuming their argument is constant), meaning that these values "
"can be used to declare the size of global variables. This may not be "
"portable, however."
msgstr ""
-"Sous Linux, B<CMSG_LEN>(), B<CMSG_DATA>(), et B<CMSG_ALIGN>() sont des "
+"Sous Linux, B<CMSG_LEN>(), B<CMSG_DATA>() et B<CMSG_ALIGN>() sont des "
"expressions constantes (si leur argument est une constante) ; elles peuvent "
"donc être utilisées pour déclarer la taille de variables globales. Cela peut "
"néanmoins ne pas être portable."
@@ -378,12 +395,7 @@
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
-#, fuzzy, no-wrap
-#| msgid ""
-#| "struct msghdr msgh;\n"
-#| "struct cmsghdr *cmsg;\n"
-#| "int *ttlptr;\n"
-#| "int received_ttl;\n"
+#, no-wrap
msgid ""
"struct msghdr msgh;\n"
"struct cmsghdr *cmsg;\n"
@@ -391,7 +403,6 @@
msgstr ""
"struct msghdr msgh;\n"
"struct cmsghdr *cmsg;\n"
-"int *ttlptr;\n"
"int received_ttl;\n"
#. type: Plain text
@@ -399,12 +410,12 @@
#: mageia-cauldron opensuse-leap-15-4 opensuse-tumbleweed
#, no-wrap
msgid "/* Receive auxiliary data in msgh */\n"
-msgstr ""
+msgstr "/* Recevoir des données de service dans msgh */\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
-#, fuzzy, no-wrap
+#, no-wrap
msgid ""
"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
@@ -415,22 +426,14 @@
" }\n"
"}\n"
msgstr ""
-"/* Receive auxiliary data in msgh */\n"
"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
-" cmsg = CMSG_NXTHDR(&msgh,cmsg)) {\n"
+" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
" if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
" && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
-" ttlptr = (int *) CMSG_DATA(cmsg);\n"
-" received_ttl = *ttlptr;\n"
+" memcpy(&receive_ttl, CMSG_DATA(cmsg), sizeof(received_ttl));\n"
" break;\n"
" }\n"
"}\n"
-"if (cmsg == NULL) {\n"
-" /*\n"
-" * Error: IP_TTL not enabled or small buffer\n"
-" * or I/O error.\n"
-" */\n"
-"}\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -441,6 +444,9 @@
" /* Error: IP_TTL not enabled or small buffer or I/O error */\n"
"}\n"
msgstr ""
+"if (cmsg == NULL) {\n"
+" /* Erreur : IP_TTL non activée, tampon trop petit ou erreur d'entrée/sortie */\n"
+"}\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -449,8 +455,8 @@
"The code below passes an array of file descriptors over a UNIX domain socket "
"using B<SCM_RIGHTS>:"
msgstr ""
-"Ce code, ci-dessous, passe une table de descripteurs de fichier au travers "
-"d'une socket de domaine UNIX avec B<SCM_RIGHTS>\\ :"
+"Le code ci-dessous passe un tableau de descripteurs de fichier au travers "
+"d'un socket de domaine UNIX à l'aide de B<SCM_RIGHTS>\\ :"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -471,11 +477,24 @@
" struct cmsghdr align;\n"
"} u;\n"
msgstr ""
+"struct msghdr msg = { 0 };\n"
+"struct cmsghdr *cmsg;\n"
+"int myfds[NUM_FD]; /* Contient les descripteurs de fichier à passer */\n"
+"char iobuf[1];\n"
+"struct iovec io = {\n"
+" .iov_base = iobuf,\n"
+" .iov_len = sizeof(iobuf)\n"
+"};\n"
+"union { /* Tampon des données de service empaqueté dans une union\n"
+" pour être sûr qu'il soit correctement aligné */\n"
+" char buf[CMSG_SPACE(sizeof(myfds))];\n"
+" struct cmsghdr align;\n"
+"} u;\n"
#. type: Plain text
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
#: mageia-cauldron opensuse-tumbleweed
-#, fuzzy, no-wrap
+#, no-wrap
msgid ""
"msg.msg_iov = &io;\n"
"msg.msg_iovlen = 1;\n"
@@ -487,30 +506,24 @@
"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(myfds));\n"
"memcpy(CMSG_DATA(cmsg), myfds, sizeof(myfds));\n"
msgstr ""
-"msg.msg_control = buf;\n"
-"msg.msg_controllen = sizeof buf;\n"
+"msg.msg_iov = &io;\n"
+"msg.msg_iovlen = 1;\n"
+"msg.msg_control = u.buf;\n"
+"msg.msg_controllen = sizeof(u.buf);\n"
"cmsg = CMSG_FIRSTHDR(&msg);\n"
"cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
"cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
-"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(int) * NUM_FD);\n"
-"/* Initialize the payload: */\n"
-"fdptr = (int *) CMSG_DATA(cmsg);\n"
-"memcpy(fdptr, myfds, NUM_FD * sizeof(int));\n"
-"/* Sum of the length of all control messages in the buffer: */\n"
-"msg.msg_controllen = cmsg-E<gt>cmsg_len;\n"
+"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(myfds));\n"
+"memcpy(CMSG_DATA(cmsg), myfds, sizeof(myfds));\n"
#. type: Plain text
#: archlinux fedora-36 fedora-rawhide mageia-cauldron opensuse-tumbleweed
-#, fuzzy
-#| msgid ""
-#| "The code below passes an array of file descriptors over a UNIX domain "
-#| "socket using B<SCM_RIGHTS>:"
msgid ""
"For a complete code example that shows passing of file descriptors over a "
"UNIX domain socket, see B<seccomp_unotify>(2)."
msgstr ""
-"Ce code, ci-dessous, passe une table de descripteurs de fichier au travers "
-"d'une socket de domaine UNIX avec B<SCM_RIGHTS>\\ :"
+"Pour un exemple de code complet qui montre la transmission de descripteurs "
+"de fichier à travers un socket de domaine UNIX, voir B<seccomp_unotify>(2)."
#. type: SH
#: archlinux debian-bullseye debian-unstable fedora-36 fedora-rawhide
@@ -570,6 +583,14 @@
"B<size_t CMSG_LEN(size_t >I<length>B<);>\n"
"B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>\n"
msgstr ""
+"B<#include E<lt>sys/socket.hE<gt>>\n"
+"B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>\n"
+"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<,>\n"
+"B< struct cmsghdr *>cmsgB<);>\n"
+"B<size_t CMSG_ALIGN(size_t >I<length>B<);>\n"
+"B<size_t CMSG_SPACE(size_t >I<length>B<);>\n"
+"B<size_t CMSG_LEN(size_t >I<length>B<);>\n"
+"B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>\n"
#. type: Plain text
#: debian-bullseye debian-unstable
@@ -598,7 +619,7 @@
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>"
-msgstr ""
+msgstr "B<struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *>I<msgh>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
@@ -606,30 +627,31 @@
"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<, struct cmsghdr "
"*>I<cmsg>B<);>"
msgstr ""
+"B<struct cmsghdr *CMSG_NXTHDR(struct msghdr *>I<msgh>B<, struct cmsghdr "
+"*>I<cmsg>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<size_t CMSG_ALIGN(size_t >I<length>B<);>"
-msgstr ""
+msgstr "B<size_t CMSG_ALIGN(size_t >I<longueur>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<size_t CMSG_SPACE(size_t >I<length>B<);>"
-msgstr ""
+msgstr "B<size_t CMSG_SPACE(size_t >I<longueur>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<size_t CMSG_LEN(size_t >I<length>B<);>"
-msgstr ""
+msgstr "B<size_t CMSG_LEN(size_t >I<longueur>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>"
-msgstr ""
+msgstr "B<unsigned char *CMSG_DATA(struct cmsghdr *>I<cmsg>B<);>"
#. type: Plain text
#: opensuse-leap-15-4
-#, fuzzy
msgid ""
"These macros are used to create and access control messages (also called "
"ancillary data) that are not a part of the socket payload. This control "
@@ -641,32 +663,32 @@
"manual pages for more information."
msgstr ""
"Ces macros sont utilisées pour créer et accéder aux messages de contrôle "
-"(aussi appelé informations de service) qui ne font pas partie du trafic "
-"normal des sockets. Ces informations de contrôle peuvent inclure l'interface "
+"(aussi appelé informations de service) qui ne font pas partie de la charge "
+"utile des sockets. Ces informations de contrôle peuvent inclure l'interface "
"sur laquelle le paquet a été reçu, des champs d'en-tête rarement employés, "
"des descriptions d'erreur approfondies, un ensemble de descripteurs de "
"fichiers ou des identificateurs UNIX. Par exemple, les messages de contrôle "
"peuvent être utilisés pour envoyer des champs d'en-tête supplémentaires tels "
-"que des options IP. Les données de service sont émises avec B<sendmsg>(2) et "
-"reçues avec B<recvmsg>(2). Reportez-vous à leur page de manuel respective "
-"pour plus d'informations."
+"que des options IP. Les données de service sont envoyées avec B<sendmsg>(2) "
+"et reçues avec B<recvmsg>(2). Reportez-vous à leurs pages de manuel "
+"respectives pour plus d'informations."
#. type: Plain text
#: opensuse-leap-15-4
-#, fuzzy
msgid ""
"B<CMSG_FIRSTHDR>() returns a pointer to the first I<cmsghdr> in the "
"ancillary data buffer associated with the passed I<msghdr>."
msgstr ""
-"B<CMSG_FIRSTHDR>() renvoie un pointeur sur la première I<cmsghdr> du tampon "
-"de données de service associé au I<msghdr> passé."
+"B<CMSG_FIRSTHDR>() renvoie un pointeur sur la première structure I<cmsghdr> "
+"du tampon de données de service associé à la structure I<msghdr> passé en "
+"paramètre."
#. type: Plain text
#: opensuse-leap-15-4
msgid "B<CMSG_DATA>() returns a pointer to the data portion of a I<cmsghdr>."
msgstr ""
-"B<CMSG_DATA>() renvoie un pointeur sur une partie des données d'un "
-"I<cmsghdr>."
+"B<CMSG_DATA>() renvoie un pointeur sur une partie des données d'une "
+"structure I<cmsghdr>."
#. type: Plain text
#: opensuse-leap-15-4
@@ -674,6 +696,9 @@
"When the control message buffer is too short to store all messages, the "
"B<MSG_CTRUNC> flag is set in the I<msg_flags> member of the I<msghdr>."
msgstr ""
+"Lorsque le tampon des messages de contrôle est trop petit pour stocker tous "
+"les messages, le drapeau B<MSG_CTRUNC> est défini dans le membre "
+"I<msg_flags> de la structure I<msghdr>."
#. type: Plain text
#: opensuse-leap-15-4
@@ -682,13 +707,12 @@
"IPv6 advanced API described in RFC\\ 2292 and SUSv2. B<CMSG_ALIGN>() is a "
"Linux extension."
msgstr ""
-"Le modèle des données de service est conforme à POSIX.1g draft, BSD\\ 4.4-"
-"Lite, «\\ IPv6 advanced API\\ » décrite dans la RFC\\ 2292 et SUSv2. "
+"Le modèle des données de service est conforme à POSIX.1g draft, 4.4BSD-Lite, "
+"«\\ IPv6 advanced API\\ » décrite dans la RFC\\ 2292 et SUSv2. "
"B<CMSG_ALIGN>() est une extension Linux."
#. type: Plain text
#: opensuse-leap-15-4
-#, fuzzy
msgid ""
"In Linux, B<CMSG_LEN>(), B<CMSG_DATA>(), and B<CMSG_ALIGN>() are constant "
"expressions (assuming their argument is constant); this could be used to "
@@ -721,7 +745,7 @@
#. type: Plain text
#: opensuse-leap-15-4
-#, fuzzy, no-wrap
+#, no-wrap
msgid ""
"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
@@ -733,9 +757,8 @@
" }\n"
"}\n"
msgstr ""
-"/* Receive auxiliary data in msgh */\n"
"for (cmsg = CMSG_FIRSTHDR(&msgh); cmsg != NULL;\n"
-" cmsg = CMSG_NXTHDR(&msgh,cmsg)) {\n"
+" cmsg = CMSG_NXTHDR(&msgh, cmsg)) {\n"
" if (cmsg-E<gt>cmsg_level == IPPROTO_IP\n"
" && cmsg-E<gt>cmsg_type == IP_TTL) {\n"
" ttlptr = (int *) CMSG_DATA(cmsg);\n"
@@ -743,12 +766,6 @@
" break;\n"
" }\n"
"}\n"
-"if (cmsg == NULL) {\n"
-" /*\n"
-" * Error: IP_TTL not enabled or small buffer\n"
-" * or I/O error.\n"
-" */\n"
-"}\n"
#. type: Plain text
#: opensuse-leap-15-4
@@ -769,10 +786,24 @@
" struct cmsghdr align;\n"
"} u;\n"
msgstr ""
+"struct msghdr msg = { 0 };\n"
+"struct cmsghdr *cmsg;\n"
+"int myfds[NUM_FD]; /* Contient les descripteurs de fichier à transmettre */\n"
+"int *fdptr;\n"
+"char iobuf[1];\n"
+"struct iovec io = {\n"
+" .iov_base = iobuf,\n"
+" .iov_len = sizeof(iobuf)\n"
+"};\n"
+"union { /* Tampon des données de service empaqueté dans une union\n"
+" pour être sûr qu'il soit correctement aligné */\n"
+" char buf[CMSG_SPACE(sizeof(myfds))];\n"
+" struct cmsghdr align;\n"
+"} u;\n"
#. type: Plain text
#: opensuse-leap-15-4
-#, fuzzy, no-wrap
+#, no-wrap
msgid ""
"msg.msg_iov = &io;\n"
"msg.msg_iovlen = 1;\n"
@@ -785,17 +816,16 @@
"fdptr = (int *) CMSG_DATA(cmsg); /* Initialize the payload */\n"
"memcpy(fdptr, myfds, NUM_FD * sizeof(int));\n"
msgstr ""
-"msg.msg_control = buf;\n"
-"msg.msg_controllen = sizeof buf;\n"
+"msg.msg_iov = &io;\n"
+"msg.msg_iovlen = 1;\n"
+"msg.msg_control = u.buf;\n"
+"msg.msg_controllen = sizeof(u.buf);\n"
"cmsg = CMSG_FIRSTHDR(&msg);\n"
"cmsg-E<gt>cmsg_level = SOL_SOCKET;\n"
"cmsg-E<gt>cmsg_type = SCM_RIGHTS;\n"
"cmsg-E<gt>cmsg_len = CMSG_LEN(sizeof(int) * NUM_FD);\n"
-"/* Initialize the payload: */\n"
-"fdptr = (int *) CMSG_DATA(cmsg);\n"
+"fdptr = (int *) CMSG_DATA(cmsg); /* Initialise la charge utile */\n"
"memcpy(fdptr, myfds, NUM_FD * sizeof(int));\n"
-"/* Sum of the length of all control messages in the buffer: */\n"
-"msg.msg_controllen = cmsg-E<gt>cmsg_len;\n"
#. type: Plain text
#: opensuse-leap-15-4