[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[LCFC2] po4a://manpages-fr-dev/cmsg.3/po/fr.po



Le 09/05/2022 à 21:46, bubub@no-log.org a écrit :
Le 26/04/2022 à 13:18, Lucien Gentis a écrit :
Le 25/04/2022 à 14:32, Jean-Pierre Giraud a écrit :
Le 22/03/2022 à 11:36, Lucien Gentis a écrit :
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 :
Autres remarques ?
Passage en LCFC

Dernières observations ?

  bonjour,  un détail,
-&+-et non, le numéro de la glibc ne s'écrit pas en gras, dans ton texte
cela n'était pas cohérent d'ailleurs sur l'ensemble,
  amicalement,
            bubu

OK pour le détail ; pour les numéros de version en gras, j'ai confondu avec les valeurs renvoyées par les fonctions

Autres remarques ?
# 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.rafin@laposte.net>, 2002.
# Thierry Vignaud <tvignaud@mandriva.com>, 1999, 2002.
# François Micaux, 2002.
# Alain Portal <aportal@univ-montp2.fr>, 2003-2008.
# Jean-Philippe Guérard <fevrier@tigreraye.org>, 2005-2006.
# Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, 2006-2007.
# Julien Cristau <jcristau@debian.org>, 2006-2007.
# Thomas Huriaux <thomas.huriaux@gmail.com>, 2006-2008.
# Nicolas François <nicolas.francois@centraliens.net>, 2006-2008.
# Florentin Duneau <fduneau@gmail.com>, 2006-2010.
# Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, 2006, 2013-2014.
# Denis Barbier <barbier@debian.org>, 2006, 2010.
# David Prévot <david@tilapin.org>, 2010-2014.
# Lucien Gentis <lucien.gentis@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.gentis@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 en appelant B<sendmsg>(2) et "
"reçues avec 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\n"
"   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 "
"I<cmsghdr> (à envoyer par exemple en appelant 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, mais doivent plutôt 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 la longueur 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<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: 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 d'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 en appelant "
"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 la partie 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, "
"l'API IPv6 avancée 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-05-10 13:06:10.085718208 +0200
@@ -15,19 +15,21 @@
 # Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, 2006, 2013-2014.
 # Denis Barbier <barbier@debian.org>, 2006, 2010.
 # David Prévot <david@tilapin.org>, 2010-2014.
+# Lucien Gentis <lucien.gentis@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-baptiste@holcroft.fr>\n"
+"PO-Revision-Date: 2022-03-11 12:42+0100\n"
+"Last-Translator: Lucien Gentis <lucien.gentis@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 "
+"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 en appelant B<sendmsg>(2) et "
+"reçues avec 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 "
+"I<cmsghdr> (à envoyer par exemple en appelant 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, mais doivent plutôt 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 la longueur 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<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: 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,31 +663,31 @@
 "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 "
+"fichiers ou d'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 en appelant "
+"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 "
+"B<CMSG_DATA>() renvoie un pointeur sur la partie données d'une structure "
 "I<cmsghdr>."
 
 #. type: Plain text
@@ -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. "
-"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_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

Reply to: