# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2024-06-01 06:20+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. type: TH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "sendmmsg" msgstr "" #. type: TH #: archlinux debian-unstable opensuse-tumbleweed #, no-wrap msgid "2024-05-02" msgstr "" #. type: TH #: archlinux debian-unstable #, no-wrap msgid "Linux man-pages 6.8" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NAME" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "sendmmsg - send multiple messages on a socket" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "LIBRARY" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "Standard C library (I, I<-lc>)" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" "B<#include Esys/socket.hE>\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "BIB<, struct mmsghdr *>IB<, unsigned int >IB<,>\n" "B< int >IB<);>\n" msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "DESCRIPTION" msgstr "" #. See commit 228e548e602061b08ee8e8966f567c12aa079682 #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The B() system call is an extension of B(2) that allows " "the caller to transmit multiple messages on a socket using a single system " "call. (This has performance benefits for some applications.)" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I argument is the file descriptor of the socket on which data is " "to be transmitted." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I argument is a pointer to an array of I structures. " "The size of this array is specified in I." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The I structure is defined in Isys/socket.hE> as:" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "" "struct mmsghdr {\n" " struct msghdr msg_hdr; /* Message header */\n" " unsigned int msg_len; /* Number of bytes transmitted */\n" "};\n" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I field is a I structure, as described in " "B(2). The I field is used to return the number of bytes " "sent from the message in I (i.e., the same as the return value from " "a single B(2) call)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The I argument contains flags ORed together. The flags are the same " "as for B(2)." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "A blocking B() call blocks until I messages have been " "sent. A nonblocking call sends as many messages as possible (up to the " "limit specified by I) and returns immediately." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On return from B(), the I fields of successive elements " "of I are updated to contain the number of bytes transmitted from the " "corresponding I. The return value of the call indicates the number " "of elements of I that have been updated." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "RETURN VALUE" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "On success, B() returns the number of messages sent from " "I; if this is less than I, the caller can retry with a further " "B() call to send the remaining messages." msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "On error, -1 is returned, and I is set to indicate the error." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "ERRORS" msgstr "" # #. commit 728ffb86f10873aaf4abd26dde691ee40ae731fe #. ... only return an error if no datagrams could be sent. #. If less than the requested number of messages were sent, the application #. must retry starting at the first failed one and if the problem is #. persistent the error will be returned. #. This matches the behavior of other syscalls like read/write - it #. is not an error if less than the requested number of elements are sent. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "Errors are as for B(2). An error is returned only if no datagrams " "could be sent. See also BUGS." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "STANDARDS" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "Linux." msgstr "" #. type: SH #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "HISTORY" msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-leap-15-6 opensuse-tumbleweed msgid "Linux 3.0, glibc 2.14." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "NOTES" msgstr "" # # #. commit 98382f419f32d2c12d021943b87dea555677144b #. net: Cap number of elements for sendmmsg #. To limit the amount of time we can spend in sendmmsg, cap the #. number of elements to UIO_MAXIOV (currently 1024). #. For error handling an application using sendmmsg needs to retry at #. the first unsent message, so capping is simpler and requires less #. application logic than returning EINVAL. #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "The value specified in I is capped to B (1024)." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "BUGS" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "If an error occurs after at least one message has been sent, the call " "succeeds, and returns the number of messages sent. The error code is lost. " "The caller can retry the transmission, starting at the first failed message, " "but there is no guarantee that, if an error is returned, it will be the same " "as the one that was lost on the previous call." msgstr "" #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "EXAMPLES" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "" "The example below uses B() to send I and I in two " "distinct UDP datagrams using one system call. The contents of the first " "datagram originates from a pair of buffers." msgstr "" #. type: Plain text #: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron #: opensuse-tumbleweed #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Earpa/inet.hE\n" "#include Enetinet/in.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Esys/socket.hE\n" "#include Esys/types.hE\n" "\\&\n" "int\n" "main(void)\n" "{\n" " int retval;\n" " int sockfd;\n" " struct iovec msg1[2], msg2;\n" " struct mmsghdr msg[2];\n" " struct sockaddr_in addr;\n" "\\&\n" " sockfd = socket(AF_INET, SOCK_DGRAM, 0);\n" " if (sockfd == -1) {\n" " perror(\"socket()\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " addr.sin_family = AF_INET;\n" " addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);\n" " addr.sin_port = htons(1234);\n" " if (connect(sockfd, (struct sockaddr *) &addr, sizeof(addr)) == -1) {\n" " perror(\"connect()\");\n" " exit(EXIT_FAILURE);\n" " }\n" "\\&\n" " memset(msg1, 0, sizeof(msg1));\n" " msg1[0].iov_base = \"one\";\n" " msg1[0].iov_len = 3;\n" " msg1[1].iov_base = \"two\";\n" " msg1[1].iov_len = 3;\n" "\\&\n" " memset(&msg2, 0, sizeof(msg2));\n" " msg2.iov_base = \"three\";\n" " msg2.iov_len = 5;\n" "\\&\n" " memset(msg, 0, sizeof(msg));\n" " msg[0].msg_hdr.msg_iov = msg1;\n" " msg[0].msg_hdr.msg_iovlen = 2;\n" "\\&\n" " msg[1].msg_hdr.msg_iov = &msg2;\n" " msg[1].msg_hdr.msg_iovlen = 1;\n" "\\&\n" " retval = sendmmsg(sockfd, msg, 2, 0);\n" " if (retval == -1)\n" " perror(\"sendmmsg()\");\n" " else\n" " printf(\"%d messages sent\\en\", retval);\n" "\\&\n" " exit(0);\n" "}\n" msgstr "" #. SRC END #. type: SH #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text #: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide #: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed msgid "B(2), B(2), B(2), B(7)" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "2022-12-04" msgstr "" #. type: TH #: debian-bookworm #, no-wrap msgid "Linux man-pages 6.03" msgstr "" #. type: SH #: debian-bookworm #, no-wrap msgid "VERSIONS" msgstr "" #. type: Plain text #: debian-bookworm msgid "" "The B() system call was added in Linux 3.0. Support in glibc was " "added in Linux 2.14." msgstr "" #. type: Plain text #: debian-bookworm msgid "B() is Linux-specific." msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "#define _GNU_SOURCE\n" "#include Earpa/inet.hE\n" "#include Enetinet/in.hE\n" "#include Estdio.hE\n" "#include Estdlib.hE\n" "#include Estring.hE\n" "#include Esys/socket.hE\n" "#include Esys/types.hE\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" "int\n" "main(void)\n" "{\n" " int retval;\n" " int sockfd;\n" " struct iovec msg1[2], msg2;\n" " struct mmsghdr msg[2];\n" " struct sockaddr_in addr;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " sockfd = socket(AF_INET, SOCK_DGRAM, 0);\n" " if (sockfd == -1) {\n" " perror(\"socket()\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " addr.sin_family = AF_INET;\n" " addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);\n" " addr.sin_port = htons(1234);\n" " if (connect(sockfd, (struct sockaddr *) &addr, sizeof(addr)) == -1) {\n" " perror(\"connect()\");\n" " exit(EXIT_FAILURE);\n" " }\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " memset(msg1, 0, sizeof(msg1));\n" " msg1[0].iov_base = \"one\";\n" " msg1[0].iov_len = 3;\n" " msg1[1].iov_base = \"two\";\n" " msg1[1].iov_len = 3;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " memset(&msg2, 0, sizeof(msg2));\n" " msg2.iov_base = \"three\";\n" " msg2.iov_len = 5;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " memset(msg, 0, sizeof(msg));\n" " msg[0].msg_hdr.msg_iov = msg1;\n" " msg[0].msg_hdr.msg_iovlen = 2;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " msg[1].msg_hdr.msg_iov = &msg2;\n" " msg[1].msg_hdr.msg_iovlen = 1;\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " retval = sendmmsg(sockfd, msg, 2, 0);\n" " if (retval == -1)\n" " perror(\"sendmmsg()\");\n" " else\n" " printf(\"%d messages sent\\en\", retval);\n" msgstr "" #. type: Plain text #: debian-bookworm opensuse-leap-15-6 #, no-wrap msgid "" " exit(0);\n" "}\n" msgstr "" #. type: TH #: fedora-40 fedora-rawhide mageia-cauldron #, no-wrap msgid "2023-10-31" msgstr "" #. type: TH #: fedora-40 mageia-cauldron #, no-wrap msgid "Linux man-pages 6.06" msgstr "" #. type: TH #: fedora-rawhide #, no-wrap msgid "Linux man-pages 6.7" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "2023-03-30" msgstr "" #. type: TH #: opensuse-leap-15-6 #, no-wrap msgid "Linux man-pages 6.04" msgstr "" #. type: TH #: opensuse-tumbleweed #, no-wrap msgid "Linux man-pages (unreleased)" msgstr ""