perkamon - en to fr translation catalogue (40 entries)

note: type: TH
en: 2019-03-06
fr: 6 mars 2019

note: type: TH
en: Linux Programmer's Manual
fr: Manuel du programmeur Linux

note: type: SH
en: NAME
fr: NOM

note: type: Plain text
en: recvmmsg - receive multiple messages on a socket
fr: recvmmsg - Recevoir plusieurs message sur une socket

note: type: Plain text
en: B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */
    B<#include E<lt>sys/socket.hE<gt>>
fr: B<#define _GNU_SOURCE>         /* Consultez feature_test_macros(7) */
    B<#include E<lt>sys/socket.hE<gt>>

note: type: Plain text
en: The B<recvmmsg>()  system call is an extension of B<recvmsg>(2)  that allows the caller to receive multiple messages from a socket using a single system call.  (This has performance benefits for some applications.)  A further extension over B<recvmsg>(2)  is support for a timeout on the receive operation.
fr: L'appel système B<recvmmsg>() est une extension de B<recvmsg>(2) qui permet à l'appelant de recevoir plusieurs messages d'une socket en utilisant un seul appel système. (Cela améliore les performances pour certaines applications.) Une autre propriété de ce cette extension de B<recvmsg>(2) est la gestion d'une temporisation pour l'opération de réception.

note: type: Plain text
en: The I<sockfd> argument is the file descriptor of the socket to receive data from.
fr: Le paramètre I<sockfd> est le descripteur de fichier de la socket émettrice.

note: type: Plain text
en: The I<msgvec> argument is a pointer to an array of I<mmsghdr> structures.  The size of this array is specified in I<vlen>.
fr: L'argument I<msgvec> est un pointeur vers un tableau de structures I<mmsghdr>. La taille de ce tableau est précisée dans I<vlen>.

note: type: Plain text
en: The I<mmsghdr> structure is defined in I<E<lt>sys/socket.hE<gt>> as:
fr: La structure I<mmsghdr> est définie dans I<E<lt>sys/socket.hE<gt>> comme ceci\ :

note: type: Plain text
en: struct mmsghdr {
        struct msghdr msg_hdr;  /* Message header */
        unsigned int  msg_len;  /* Number of received bytes for header */
    };
fr: struct mmsghdr {
        struct msghdr msg_hdr;  /* En-tête du message  */
        unsigned int  msg_len;  /* Nombre d'octets reçus pour l'en-tête */
    };

note: type: Plain text
en: The I<msg_hdr> field is a I<msghdr> structure, as described in B<recvmsg>(2).  The I<msg_len> field is the number of bytes returned for the message in the entry.  This field has the same value as the return value of a single B<recvmsg>(2)  on the header.
fr: Le champ I<msg_hdr> est une structure  I<msghdr>, conformément à B<recvmsg>(2). Le champ I<msg_len> est le nombre d'octets retourné par le message dans l'entrée. Ce champ a la même valeur que la valeur de retour de la simple commande B<recvmsg>(2) sur l'en-tête.

note: type: Plain text
en: The I<flags> argument contains flags ORed together.  The flags are the same as documented for B<recvmsg>(2), with the following addition:
fr: L'argument I<flags> contient le OU binaire de la collection des attributs. Les attributs sont ceux documentés pour B<recvmsg>(2), plus :

note: type: TP
en: B<MSG_WAITFORONE> (since Linux 2.6.34)
fr: B<MSG_WAITFORONE> (depuis Linux 2.6.34)

note: type: Plain text
en: Turns on B<MSG_DONTWAIT> after the first message has been received.
fr: Activer B<MSG_DONTWAIT> après le premier message reçu.

note: type: Plain text
en: The I<timeout> argument points to a I<struct timespec> (see B<clock_gettime>(2))  defining a timeout (seconds plus nanoseconds) for the receive operation (I<but see BUGS!>).  (This interval will be rounded up to the system clock granularity, and kernel scheduling delays mean that the blocking interval may overrun by a small amount.)  If I<timeout> is NULL, then the operation blocks indefinitely.
fr: L'argument I<timeout> est un pointeur vers une I<struct timespec> (consultez B<clock_gettime>(2)) définissant la temporisation (en secondes et nanosecondes) pour l'opération de réception (mais consultez la section BOGUES !). Cet intervalle sera arrondi à la granularité de l'horloge système, et peut être légèrement modifié à cause des délais d'ordonnancement du noyau. Si I<timeout> est le pointeur nul, l'opération se bloque indéfiniment.

note: type: Plain text
en: A blocking B<recvmmsg>()  call blocks until I<vlen> messages have been received or until the timeout expires.  A nonblocking call reads as many messages as are available (up to the limit specified by I<vlen>)  and returns immediately.
fr: Un appel bloquant B<recvmmsg>() bloque jusqu'à la réception de I<vlsen> messages ou l'expiration de la temporisation. Un appel non bloquant lit autant de messages que disponibles (jusqu'à la limite indiquée par I<vlen>) et retourne immédiatement.

note: type: Plain text
en: On return from B<recvmmsg>(), successive elements of I<msgvec> are updated to contain information about each received message: I<msg_len> contains the size of the received message; the subfields of I<msg_hdr> are updated as described in B<recvmsg>(2).  The return value of the call indicates the number of elements of I<msgvec> that have been updated.
fr: Au retour de B<recvmmsg>(), les éléments successifs de I<msgvec> sont mis à jour pour contenir l'information concernant chaque message reçu : les champs secondaires de I<msg_hdr> sont mis à jour conformément à B<recmsg>(2). La valeur de retour de l'appel indique le nombre d'éléments de I<msgvec> mis à jour.

note: type: SH
en: RETURN VALUE
fr: VALEUR DE RETOUR

note: type: Plain text
en: On success, B<recvmmsg>()  returns the number of messages received in I<msgvec>; on error, -1 is returned, and I<errno> is set to indicate the error.
fr: En cas du succès, B<recvmmsg>() retourne le nombre de messages reçus dans I<msgvec> ; Dans le cas contraire, il renvoie -1 et remplit I<errno> avec le code d'erreur.

note: type: SH
en: ERRORS
fr: ERREURS

note: type: Plain text
en: Errors are as for B<recvmsg>(2).  In addition, the following error can occur:
fr: Les erreurs sont les mêmes que pour B<recvmsg>(2), plus l'erreur suivante :

note: type: Plain text
en: I<timeout> is invalid.
fr: I<timeout> n'est pas valable.

note: type: Plain text
en: The B<recvmmsg>()  system call was added in Linux 2.6.33.  Support in glibc was added in version 2.12.
fr: L'appel système B<recvmmsg>() a été ajouté dans Linux 2.6.33. La prise en charge dans la glibc a été ajoutée dans la version 2.12.

note: type: SH
en: CONFORMING TO
fr: CONFORMITÉ

note: type: Plain text
en: B<recvmmsg>()  is Linux-specific.
fr: B<recvmmsg>() est spécifique à Linux.

note: type: SH
en: BUGS
fr: BOGUES

note: FIXME . https://bugzilla.kernel.org/show_bug.cgi?id=75371 http://thread.gmane.org/gmane.linux.man/5677 type: Plain text
en: The I<timeout> argument does not work as intended.  The timeout is checked only after the receipt of each datagram, so that if up to I<vlen-1> datagrams are received before the timeout expires, but then no further datagrams are received, the call will block forever.
fr: L'argument I<timeout> n'a pas l'effet que l'on pourrait attendre. La non-expiration du timeout est vérifiée après la réception de chaque datagramme, de sorte que si moins de I<vlen-1> datagrammes sont reçus avant l'expiration du timeout, mais qu'aucun datagramme n'est reçu ensuite, l'appel restera bloqué indéfiniment.

note: type: SH
en: EXAMPLE
fr: EXEMPLE

note: type: Plain text
en: The following program uses B<recvmmsg>()  to receive multiple messages on a socket and stores them in multiple buffers.  The call returns if all buffers are filled or if the timeout specified has expired.
fr: Le programme suivant utilise B<recvmmsg>() pour recevoir plusieurs messages sur une socket et les stocker dans plusieurs tampons. L'appel termine si tous les tampons sont remplis ou si le délai indiqué est dépassé.

note: type: Plain text
en: The following snippet periodically generates UDP datagrams containing a random number:
fr: Le morceau de code suivant engendre périodiquement des datagrammes UDP contenant un nombre aléatoire :

note: type: Plain text
en: These datagrams are read by the example application, which can give the following output:
fr: Ces datagrammes sont lus par le programme ci-dessous, qui peut par exemple afficher la sortie suivante :

note: type: Plain text
en: $B< ./a.out>
    5 messages received
    1 11782
    2 11345
    3 304
    4 13514
    5 28421
fr: $B< ./a.out>
    5 messages reçus
    1 11782
    2 11345
    3 304
    4 13514
    5 28421

note: type: SS
en: Program source
fr: Source du programme

note: type: Plain text
en:     memset(msgs, 0, sizeof(msgs));
        for (i = 0; i E<lt> VLEN; i++) {
            iovecs[i].iov_base         = bufs[i];
            iovecs[i].iov_len          = BUFSIZE;
            msgs[i].msg_hdr.msg_iov    = &iovecs[i];
            msgs[i].msg_hdr.msg_iovlen = 1;
        }
fr:     memset(msgs, 0, sizeof(msgs));
        for (i = 0; i E<lt> VLEN; i++) {
            iovecs[i].iov_base = bufs[i];
            iovecs[i].iov_len = BUFSIZE;
            msgs[i].msg_hdr.msg_iov = &iovecs[i];
            msgs[i].msg_hdr.msg_iovlen = 1;
        }

note: type: Plain text
en:     retval = recvmmsg(sockfd, msgs, VLEN, 0, &timeout);
        if (retval == -1) {
            perror("recvmmsg()");
            exit(EXIT_FAILURE);
        }
fr:     resultat = recvmmsg(sockfd, msgs, VLEN, 0, &timeout);
        if (resultat == -1) {
            perror("recvmmsg()");
            exit(EXIT_FAILURE);
        }

note: type: Plain text
en:     printf("%d messages received\en", retval);
        for (i = 0; i E<lt> retval; i++) {
            bufs[i][msgs[i].msg_len] = 0;
            printf("%d %s", i+1, bufs[i]);
        }
        exit(EXIT_SUCCESS);
    }
fr:     printf("%d messages reçus\en", resultat);
        for (i = 0; i E<lt> resultat; i++) {
            bufs[i][msgs[i].msg_len] = 0;
            printf("%d %s", i+1, bufs[i]);
        }
        exit(EXIT_SUCCESS);
    }

note: type: SH
en: SEE ALSO
fr: VOIR AUSSI

note: type: Plain text
en: This page is part of release 5.03 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/.
fr: Cette page fait partie de la publication 5.03 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.

note: type: Plain text
en: This page is part of release 5.02 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/.
fr: Cette page fait partie de la publication 5.02 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.

note: type: Plain text
en: This page is part of release 5.01 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/.
fr: Cette page fait partie de la publication 5.01 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.
