X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=po4a%2Fsocket%2Fpo%2Fsocket.pot;h=42df753239df982bfedf32411b53debd25dfac91;hb=8a7f723a0530d2fb90ab139c03452e84d1e19905;hp=496a8332567ea96283de563c2ff0482e0684ff0c;hpb=159e388fc39e9b03c6376079949ba32b66818e9b;p=linuxjm%2FLDP_man-pages.git diff --git a/po4a/socket/po/socket.pot b/po4a/socket/po/socket.pot index 496a8332..42df7532 100644 --- a/po4a/socket/po/socket.pot +++ b/po4a/socket/po/socket.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2012-05-01 04:39+0900\n" +"POT-Creation-Date: 2013-03-22 01:06+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,48 +17,48 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #. type: TH -#: build/C/man2/accept.2:39 +#: build/C/man2/accept.2:41 #, no-wrap msgid "ACCEPT" msgstr "" #. type: TH -#: build/C/man2/accept.2:39 +#: build/C/man2/accept.2:41 #, no-wrap msgid "2010-09-10" msgstr "" #. type: TH -#: build/C/man2/accept.2:39 build/C/man2/bind.2:66 build/C/man2/connect.2:65 build/C/man2/getsockname.2:38 build/C/man2/getsockopt.2:42 build/C/man2/listen.2:43 build/C/man2/recv.2:39 build/C/man2/recvmmsg.2:26 build/C/man2/select.2:38 build/C/man2/select_tut.2:30 build/C/man2/send.2:38 build/C/man2/sendmmsg.2:28 build/C/man3/sockatmark.3:23 build/C/man2/socket.2:41 build/C/man7/socket.7:26 build/C/man2/socketcall.2:26 build/C/man2/socketpair.2:40 +#: build/C/man2/accept.2:41 build/C/man2/bind.2:68 build/C/man2/connect.2:67 build/C/man2/getsockname.2:40 build/C/man2/getsockopt.2:44 build/C/man2/listen.2:45 build/C/man2/recv.2:41 build/C/man2/recvmmsg.2:31 build/C/man2/select.2:38 build/C/man2/select_tut.2:32 build/C/man2/send.2:40 build/C/man2/sendmmsg.2:28 build/C/man3/sockatmark.3:25 build/C/man2/socket.2:43 build/C/man7/socket.7:48 build/C/man2/socketcall.2:25 build/C/man2/socketpair.2:42 #, no-wrap msgid "Linux" msgstr "" #. type: TH -#: build/C/man2/accept.2:39 build/C/man2/bind.2:66 build/C/man3/bindresvport.3:27 build/C/man2/connect.2:65 build/C/man3/getifaddrs.3:33 build/C/man2/getsockname.2:38 build/C/man2/getsockopt.2:42 build/C/man2/listen.2:43 build/C/man2/recv.2:39 build/C/man2/recvmmsg.2:26 build/C/man2/select.2:38 build/C/man2/select_tut.2:30 build/C/man2/send.2:38 build/C/man2/sendmmsg.2:28 build/C/man3/sockatmark.3:23 build/C/man2/socket.2:41 build/C/man7/socket.7:26 build/C/man2/socketcall.2:26 build/C/man2/socketpair.2:40 +#: build/C/man2/accept.2:41 build/C/man2/bind.2:68 build/C/man3/bindresvport.3:30 build/C/man2/connect.2:67 build/C/man3/getifaddrs.3:36 build/C/man2/getsockname.2:40 build/C/man2/getsockopt.2:44 build/C/man3/if_nameindex.3:26 build/C/man3/if_nametoindex.3:25 build/C/man2/listen.2:45 build/C/man2/recv.2:41 build/C/man2/recvmmsg.2:31 build/C/man2/select.2:38 build/C/man2/select_tut.2:32 build/C/man2/send.2:40 build/C/man2/sendmmsg.2:28 build/C/man3/sockatmark.3:25 build/C/man2/socket.2:43 build/C/man7/socket.7:48 build/C/man2/socketcall.2:25 build/C/man2/socketpair.2:42 #, no-wrap msgid "Linux Programmer's Manual" msgstr "" #. type: SH -#: build/C/man2/accept.2:40 build/C/man2/bind.2:67 build/C/man3/bindresvport.3:28 build/C/man2/connect.2:66 build/C/man3/getifaddrs.3:34 build/C/man2/getsockname.2:39 build/C/man2/getsockopt.2:43 build/C/man2/listen.2:44 build/C/man2/recv.2:40 build/C/man2/recvmmsg.2:27 build/C/man2/select.2:39 build/C/man2/select_tut.2:31 build/C/man2/send.2:39 build/C/man2/sendmmsg.2:29 build/C/man3/sockatmark.3:24 build/C/man2/socket.2:42 build/C/man7/socket.7:27 build/C/man2/socketcall.2:27 build/C/man2/socketpair.2:41 +#: build/C/man2/accept.2:42 build/C/man2/bind.2:69 build/C/man3/bindresvport.3:31 build/C/man2/connect.2:68 build/C/man3/getifaddrs.3:37 build/C/man2/getsockname.2:41 build/C/man2/getsockopt.2:45 build/C/man3/if_nameindex.3:27 build/C/man3/if_nametoindex.3:26 build/C/man2/listen.2:46 build/C/man2/recv.2:42 build/C/man2/recvmmsg.2:32 build/C/man2/select.2:39 build/C/man2/select_tut.2:33 build/C/man2/send.2:41 build/C/man2/sendmmsg.2:29 build/C/man3/sockatmark.3:26 build/C/man2/socket.2:44 build/C/man7/socket.7:49 build/C/man2/socketcall.2:26 build/C/man2/socketpair.2:43 #, no-wrap msgid "NAME" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:42 -msgid "accept - accept a connection on a socket" +#: build/C/man2/accept.2:44 +msgid "accept, accept4 - accept a connection on a socket" msgstr "" #. type: SH -#: build/C/man2/accept.2:42 build/C/man2/bind.2:69 build/C/man3/bindresvport.3:30 build/C/man2/connect.2:68 build/C/man3/getifaddrs.3:36 build/C/man2/getsockname.2:41 build/C/man2/getsockopt.2:45 build/C/man2/listen.2:46 build/C/man2/recv.2:42 build/C/man2/recvmmsg.2:29 build/C/man2/select.2:42 build/C/man2/select_tut.2:34 build/C/man2/send.2:41 build/C/man2/sendmmsg.2:31 build/C/man3/sockatmark.3:26 build/C/man2/socket.2:44 build/C/man7/socket.7:29 build/C/man2/socketcall.2:29 build/C/man2/socketpair.2:43 +#: build/C/man2/accept.2:44 build/C/man2/bind.2:71 build/C/man3/bindresvport.3:33 build/C/man2/connect.2:70 build/C/man3/getifaddrs.3:39 build/C/man2/getsockname.2:43 build/C/man2/getsockopt.2:47 build/C/man3/if_nameindex.3:29 build/C/man3/if_nametoindex.3:29 build/C/man2/listen.2:48 build/C/man2/recv.2:44 build/C/man2/recvmmsg.2:34 build/C/man2/select.2:42 build/C/man2/select_tut.2:36 build/C/man2/send.2:43 build/C/man2/sendmmsg.2:31 build/C/man3/sockatmark.3:28 build/C/man2/socket.2:46 build/C/man7/socket.7:51 build/C/man2/socketcall.2:28 build/C/man2/socketpair.2:45 #, no-wrap msgid "SYNOPSIS" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:46 build/C/man2/bind.2:73 +#: build/C/man2/accept.2:48 build/C/man2/bind.2:75 #, no-wrap msgid "" "B<#include Esys/types.hE> /* See NOTES */\n" @@ -66,7 +66,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:48 +#: build/C/man2/accept.2:50 #, no-wrap msgid "" "BIB<, struct sockaddr *>IB<, socklen_t " @@ -74,7 +74,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:51 +#: build/C/man2/accept.2:53 #, no-wrap msgid "" "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n" @@ -82,7 +82,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:54 +#: build/C/man2/accept.2:56 #, no-wrap msgid "" "BIB<, struct sockaddr *>IB<,>\n" @@ -90,13 +90,13 @@ msgid "" msgstr "" #. type: SH -#: build/C/man2/accept.2:55 build/C/man2/bind.2:77 build/C/man3/bindresvport.3:37 build/C/man2/connect.2:77 build/C/man3/getifaddrs.3:45 build/C/man2/getsockname.2:48 build/C/man2/getsockopt.2:56 build/C/man2/listen.2:54 build/C/man2/recv.2:57 build/C/man2/recvmmsg.2:39 build/C/man2/select.2:81 build/C/man2/select_tut.2:73 build/C/man2/send.2:56 build/C/man2/sendmmsg.2:40 build/C/man3/sockatmark.3:40 build/C/man2/socket.2:50 build/C/man7/socket.7:33 build/C/man2/socketcall.2:31 build/C/man2/socketpair.2:50 +#: build/C/man2/accept.2:57 build/C/man2/bind.2:79 build/C/man3/bindresvport.3:40 build/C/man2/connect.2:79 build/C/man3/getifaddrs.3:48 build/C/man2/getsockname.2:50 build/C/man2/getsockopt.2:58 build/C/man3/if_nameindex.3:36 build/C/man3/if_nametoindex.3:37 build/C/man2/listen.2:56 build/C/man2/recv.2:59 build/C/man2/recvmmsg.2:44 build/C/man2/select.2:81 build/C/man2/select_tut.2:75 build/C/man2/send.2:58 build/C/man2/sendmmsg.2:40 build/C/man3/sockatmark.3:42 build/C/man2/socket.2:52 build/C/man7/socket.7:55 build/C/man2/socketcall.2:30 build/C/man2/socketpair.2:52 #, no-wrap msgid "DESCRIPTION" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:70 +#: build/C/man2/accept.2:72 msgid "" "The B() system call is used with connection-based socket types " "(B, B). It extracts the first connection " @@ -107,7 +107,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:79 +#: build/C/man2/accept.2:81 msgid "" "The argument I is a socket that has been created with B(2), " "bound to a local address with B(2), and is listening for connections " @@ -115,7 +115,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:97 +#: build/C/man2/accept.2:99 msgid "" "The argument I is a pointer to a I structure. This " "structure is filled in with the address of the peer socket, as known to the " @@ -126,7 +126,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:105 +#: build/C/man2/accept.2:107 msgid "" "The I argument is a value-result argument: the caller must " "initialize it to contain the size (in bytes) of the structure pointed to by " @@ -134,7 +134,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:110 build/C/man2/getsockname.2:65 +#: build/C/man2/accept.2:112 build/C/man2/getsockname.2:67 msgid "" "The returned address is truncated if the buffer provided is too small; in " "this case, I will return a value greater than was supplied to the " @@ -142,7 +142,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:123 +#: build/C/man2/accept.2:125 msgid "" "If no pending connections are present on the queue, and the socket is not " "marked as nonblocking, B() blocks the caller until a connection is " @@ -152,7 +152,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:137 +#: build/C/man2/accept.2:139 msgid "" "In order to be notified of incoming connections on a socket, you can use " "B(2) or B(2) return a readability event because the " @@ -497,13 +497,13 @@ msgid "" msgstr "" #. type: SS -#: build/C/man2/accept.2:349 +#: build/C/man2/accept.2:351 #, no-wrap msgid "The socklen_t type" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:359 +#: build/C/man2/accept.2:361 msgid "" "The third argument of B() was originally declared as an I " "(and is that under libc4 and libc5 and on many other systems like 4.x BSD, " @@ -515,7 +515,7 @@ msgstr "" #. .I fails: only italicizes a single line #. type: Plain text -#: build/C/man2/accept.2:376 +#: build/C/man2/accept.2:378 msgid "" "\"_Any_ sane library _must_ have \"socklen_t\" be the same size as int. " "Anything else breaks any BSD socket layer stuff. POSIX initially I " @@ -532,62 +532,62 @@ msgid "" msgstr "" #. type: SH -#: build/C/man2/accept.2:376 build/C/man2/bind.2:252 build/C/man2/connect.2:256 build/C/man3/getifaddrs.3:198 build/C/man2/listen.2:164 build/C/man2/recv.2:488 build/C/man2/select.2:484 build/C/man2/select_tut.2:527 build/C/man2/send.2:417 build/C/man3/sockatmark.3:95 build/C/man2/socket.2:382 +#: build/C/man2/accept.2:378 build/C/man2/bind.2:254 build/C/man2/connect.2:258 build/C/man3/getifaddrs.3:207 build/C/man3/if_nameindex.3:108 build/C/man2/listen.2:166 build/C/man2/recv.2:490 build/C/man2/recvmmsg.2:173 build/C/man2/select.2:537 build/C/man2/select_tut.2:529 build/C/man2/send.2:419 build/C/man2/sendmmsg.2:168 build/C/man3/sockatmark.3:97 build/C/man2/socket.2:385 #, no-wrap msgid "EXAMPLE" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:379 build/C/man2/listen.2:167 +#: build/C/man2/accept.2:381 build/C/man2/listen.2:169 msgid "See B(2)." msgstr "" #. type: SH -#: build/C/man2/accept.2:379 build/C/man2/bind.2:317 build/C/man3/bindresvport.3:98 build/C/man2/connect.2:261 build/C/man3/getifaddrs.3:281 build/C/man2/getsockname.2:110 build/C/man2/getsockopt.2:200 build/C/man2/listen.2:167 build/C/man2/recv.2:493 build/C/man2/recvmmsg.2:165 build/C/man2/select.2:521 build/C/man2/select_tut.2:817 build/C/man2/send.2:422 build/C/man2/sendmmsg.2:168 build/C/man3/sockatmark.3:130 build/C/man2/socket.2:387 build/C/man7/socket.7:741 build/C/man2/socketcall.2:54 build/C/man2/socketpair.2:122 +#: build/C/man2/accept.2:381 build/C/man2/bind.2:319 build/C/man3/bindresvport.3:101 build/C/man2/connect.2:263 build/C/man3/getifaddrs.3:290 build/C/man2/getsockname.2:112 build/C/man2/getsockopt.2:202 build/C/man3/if_nameindex.3:146 build/C/man3/if_nametoindex.3:89 build/C/man2/listen.2:169 build/C/man2/recv.2:495 build/C/man2/recvmmsg.2:268 build/C/man2/select.2:574 build/C/man2/select_tut.2:819 build/C/man2/send.2:424 build/C/man2/sendmmsg.2:236 build/C/man3/sockatmark.3:132 build/C/man2/socket.2:390 build/C/man7/socket.7:847 build/C/man2/socketcall.2:53 build/C/man2/socketpair.2:124 #, no-wrap msgid "SEE ALSO" msgstr "" #. type: Plain text -#: build/C/man2/accept.2:386 +#: build/C/man2/accept.2:388 msgid "" "B(2), B(2), B(2), B(2) or B(2) for completion " @@ -1257,47 +1257,47 @@ msgstr "" #. For TCP, the connection will complete asynchronously. #. See http://lkml.org/lkml/2005/7/12/254 #. type: Plain text -#: build/C/man2/connect.2:207 +#: build/C/man2/connect.2:209 msgid "" "The system call was interrupted by a signal that was caught; see " "B(7)." msgstr "" #. type: TP -#: build/C/man2/connect.2:207 build/C/man2/send.2:321 +#: build/C/man2/connect.2:209 build/C/man2/send.2:323 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/connect.2:210 +#: build/C/man2/connect.2:212 msgid "The socket is already connected." msgstr "" #. type: TP -#: build/C/man2/connect.2:210 +#: build/C/man2/connect.2:212 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/connect.2:213 +#: build/C/man2/connect.2:215 msgid "Network is unreachable." msgstr "" #. type: Plain text -#: build/C/man2/connect.2:216 +#: build/C/man2/connect.2:218 msgid "The file descriptor is not associated with a socket." msgstr "" #. type: TP -#: build/C/man2/connect.2:216 +#: build/C/man2/connect.2:218 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/connect.2:223 +#: build/C/man2/connect.2:225 msgid "" "Timeout while attempting connection. The server may be too busy to accept " "new connections. Note that for IP sockets the timeout may be very long when " @@ -1317,14 +1317,14 @@ msgstr "" #. It also #. documents many additional error conditions not described here. #. type: Plain text -#: build/C/man2/connect.2:239 +#: build/C/man2/connect.2:241 msgid "" "SVr4, 4.4BSD, (the B() function first appeared in 4.2BSD), " "POSIX.1-2001." msgstr "" #. type: Plain text -#: build/C/man2/connect.2:256 +#: build/C/man2/connect.2:258 msgid "" "The third argument of B() is in reality an I (and this is " "what 4.x BSD and libc4 and libc5 have). Some POSIX confusion resulted in " @@ -1332,42 +1332,42 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/connect.2:261 +#: build/C/man2/connect.2:263 msgid "An example of the use of B() is shown in B(3)." msgstr "" #. type: Plain text -#: build/C/man2/connect.2:268 +#: build/C/man2/connect.2:270 msgid "" "B(2), B(2), B(2), B(2), B(2), " "B(7)" msgstr "" #. type: TH -#: build/C/man3/getifaddrs.3:33 +#: build/C/man3/getifaddrs.3:36 #, no-wrap msgid "GETIFADDRS" msgstr "" #. type: TH -#: build/C/man3/getifaddrs.3:33 +#: build/C/man3/getifaddrs.3:36 #, no-wrap -msgid "2010-10-06" +msgid "2012-11-11" msgstr "" #. type: TH -#: build/C/man3/getifaddrs.3:33 +#: build/C/man3/getifaddrs.3:36 build/C/man3/if_nameindex.3:26 build/C/man3/if_nametoindex.3:25 #, no-wrap msgid "GNU" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:36 +#: build/C/man3/getifaddrs.3:39 msgid "getifaddrs, freeifaddrs - get interface addresses" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:40 +#: build/C/man3/getifaddrs.3:43 #, no-wrap msgid "" "B<#include Esys/types.hE>\n" @@ -1375,19 +1375,19 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:42 +#: build/C/man3/getifaddrs.3:45 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:44 +#: build/C/man3/getifaddrs.3:47 #, no-wrap msgid "BIB<);>\n" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:55 +#: build/C/man3/getifaddrs.3:58 msgid "" "The B() function creates a linked list of structures describing " "the network interfaces of the local system, and stores the address of the " @@ -1396,7 +1396,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:74 +#: build/C/man3/getifaddrs.3:77 #, no-wrap msgid "" "struct ifaddrs {\n" @@ -1418,7 +1418,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:81 +#: build/C/man3/getifaddrs.3:84 msgid "" "The I field contains a pointer to the next structure on the list, " "or NULL if this is the last item of the list." @@ -1428,12 +1428,12 @@ msgstr "" #. .B IF NAMESIZE #. indicates the maximum length of this field. #. type: Plain text -#: build/C/man3/getifaddrs.3:88 +#: build/C/man3/getifaddrs.3:91 msgid "The I points to the null-terminated interface name." msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:97 +#: build/C/man3/getifaddrs.3:100 msgid "" "The I field contains the interface flags, as returned by the " "B B(2) operation (see B(7) for a list of " @@ -1441,22 +1441,23 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:105 +#: build/C/man3/getifaddrs.3:109 msgid "" "The I field points to a structure containing the interface " "address. (The I subfield should be consulted to determine the " -"format of the address structure.)" +"format of the address structure.) This field may contain a NULL pointer." msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:111 +#: build/C/man3/getifaddrs.3:116 msgid "" "The I field points to a structure containing the netmask " -"associated with I, if applicable for the address family." +"associated with I, if applicable for the address family. This " +"field may contain a NULL pointer." msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:126 +#: build/C/man3/getifaddrs.3:131 msgid "" "Depending on whether the bit B or B is set " "in I (only one can be set at a time), either I " @@ -1466,28 +1467,28 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:131 +#: build/C/man3/getifaddrs.3:136 msgid "" "The I field points to a buffer containing address-family-specific " "data; this field may be NULL if there is no such data for this interface." msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:137 +#: build/C/man3/getifaddrs.3:142 msgid "" "The data returned by B() is dynamically allocated and should be " "freed using B() when no longer needed." msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:144 +#: build/C/man3/getifaddrs.3:149 msgid "" "On success, B() returns zero; on error, -1 is returned, and " "I is set appropriately." msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:157 +#: build/C/man3/getifaddrs.3:162 msgid "" "B() may fail and set I for any of the errors specified " "for B(2), B(2), B(2), B(2), " @@ -1495,7 +1496,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:165 +#: build/C/man3/getifaddrs.3:170 msgid "" "The B() function first appeared in glibc 2.3, but before glibc " "2.3.3, the implementation only supported IPv4 addresses; IPv6 support was " @@ -1508,7 +1509,7 @@ msgstr "" #. i.e., commonly it still says one of them will be NULL, even if #. the ifa_ifu union is already present #. type: Plain text -#: build/C/man3/getifaddrs.3:185 +#: build/C/man3/getifaddrs.3:190 msgid "" "Not in POSIX.1-2001. This function first appeared in BSDi and is present on " "the BSD systems, but with slightly different semantics " @@ -1520,18 +1521,20 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:198 +#: build/C/man3/getifaddrs.3:207 msgid "" "The addresses returned on Linux will usually be the IPv4 and IPv6 addresses " "assigned to the interface, but also one B address per interface " "containing lower-level details about the interface and its physical layer. " "In this case, the I field may contain a pointer to a I, defined in Ilinux/netdevice.hE>, which contains " -"various interface attributes and statistics." +"rtnl_link_stats>, defined in Ilinux/if_link.hE> (in Linux 2.4 and " +"earlier, I, defined in " +"Ilinux/netdevice.hE>), which contains various interface attributes " +"and statistics." msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:205 +#: build/C/man3/getifaddrs.3:214 msgid "" "The program below demonstrates the use of B(), B(), " "and B(3). Here is what we see when running this program on one " @@ -1539,7 +1542,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:219 +#: build/C/man3/getifaddrs.3:228 #, no-wrap msgid "" "$ B<./a.out>\n" @@ -1556,13 +1559,13 @@ msgid "" msgstr "" #. type: SS -#: build/C/man3/getifaddrs.3:221 +#: build/C/man3/getifaddrs.3:230 build/C/man3/if_nameindex.3:120 build/C/man2/recvmmsg.2:206 #, no-wrap msgid "Program source" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:231 +#: build/C/man3/getifaddrs.3:240 #, no-wrap msgid "" "#include Earpa/inet.hE\n" @@ -1575,7 +1578,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:238 +#: build/C/man3/getifaddrs.3:247 #, no-wrap msgid "" "int\n" @@ -1587,7 +1590,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:243 +#: build/C/man3/getifaddrs.3:252 #, no-wrap msgid "" " if (getifaddrs(&ifaddr) == -1) {\n" @@ -1597,7 +1600,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:246 +#: build/C/man3/getifaddrs.3:255 #, no-wrap msgid "" " /* Walk through linked list, maintaining head pointer so we\n" @@ -1605,7 +1608,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:250 +#: build/C/man3/getifaddrs.3:259 #, no-wrap msgid "" " for (ifa = ifaddr; ifa != NULL; ifa = ifa-Eifa_next) {\n" @@ -1614,13 +1617,13 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:252 +#: build/C/man3/getifaddrs.3:261 #, no-wrap msgid " family = ifa-Eifa_addr-Esa_family;\n" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:255 +#: build/C/man3/getifaddrs.3:264 #, no-wrap msgid "" " /* Display interface name and family (including symbolic\n" @@ -1628,7 +1631,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:261 +#: build/C/man3/getifaddrs.3:270 #, no-wrap msgid "" " printf(\"%s\\t address family: %d%s\\en\",\n" @@ -1639,13 +1642,13 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:263 +#: build/C/man3/getifaddrs.3:272 #, no-wrap msgid " /* For an AF_INET* interface address, display the address */\n" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:276 +#: build/C/man3/getifaddrs.3:285 #, no-wrap msgid "" " if (family == AF_INET || family == AF_INET6) {\n" @@ -1663,7 +1666,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:280 +#: build/C/man3/getifaddrs.3:289 #, no-wrap msgid "" " freeifaddrs(ifaddr);\n" @@ -1672,23 +1675,23 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/getifaddrs.3:287 +#: build/C/man3/getifaddrs.3:296 msgid "B(2), B(2), B(2), B(7), B(8)" msgstr "" #. type: TH -#: build/C/man2/getsockname.2:38 +#: build/C/man2/getsockname.2:40 #, no-wrap msgid "GETSOCKNAME" msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:41 +#: build/C/man2/getsockname.2:43 msgid "getsockname - get socket name" msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:47 +#: build/C/man2/getsockname.2:49 #, no-wrap msgid "" "BIB<, struct sockaddr *>IB<, socklen_t " @@ -1696,7 +1699,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:60 +#: build/C/man2/getsockname.2:62 msgid "" "B() returns the current address to which the socket I " "is bound, in the buffer pointed to by I. The I argument " @@ -1705,51 +1708,51 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:76 build/C/man2/getsockopt.2:140 build/C/man2/listen.2:94 +#: build/C/man2/getsockname.2:78 build/C/man2/getsockopt.2:142 build/C/man2/listen.2:96 msgid "The argument I is not a valid descriptor." msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:82 +#: build/C/man2/getsockname.2:84 msgid "" "The I argument points to memory not in a valid part of the process " "address space." msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:86 +#: build/C/man2/getsockname.2:88 msgid "I is invalid (e.g., is negative)." msgstr "" #. type: TP -#: build/C/man2/getsockname.2:86 build/C/man2/send.2:333 +#: build/C/man2/getsockname.2:88 build/C/man3/if_nameindex.3:83 build/C/man2/send.2:335 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:90 +#: build/C/man2/getsockname.2:92 msgid "" "Insufficient resources were available in the system to perform the " "operation." msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:95 build/C/man2/getsockopt.2:169 +#: build/C/man2/getsockname.2:97 build/C/man2/getsockopt.2:171 msgid "The argument I is a file, not a socket." msgstr "" #. SVr4 documents additional ENOMEM #. and ENOSR error codes. #. type: Plain text -#: build/C/man2/getsockname.2:101 +#: build/C/man2/getsockname.2:103 msgid "" "SVr4, 4.4BSD (the B() function call appeared in 4.2BSD), " "POSIX.1-2001." msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:110 +#: build/C/man2/getsockname.2:112 msgid "" "The third argument of B() is in reality an I (and this " "is what 4.x BSD and libc4 and libc5 have). Some POSIX confusion resulted in " @@ -1757,25 +1760,25 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockname.2:117 +#: build/C/man2/getsockname.2:119 msgid "" "B(2), B(2), B(3), B(7), B(7), " "B(7)" msgstr "" #. type: TH -#: build/C/man2/getsockopt.2:42 +#: build/C/man2/getsockopt.2:44 #, no-wrap msgid "GETSOCKOPT" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:45 +#: build/C/man2/getsockopt.2:47 msgid "getsockopt, setsockopt - get and set options on sockets" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:55 +#: build/C/man2/getsockopt.2:57 #, no-wrap msgid "" "BIB<, int >IB<, int >IB<,>\n" @@ -1785,7 +1788,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:65 +#: build/C/man2/getsockopt.2:67 msgid "" "B() and B() manipulate options for the socket " "referred to by the file descriptor I. Options may exist at multiple " @@ -1793,7 +1796,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:84 +#: build/C/man2/getsockopt.2:86 msgid "" "When manipulating socket options, the level at which the option resides and " "the name of the option must be specified. To manipulate options at the " @@ -1805,7 +1808,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:106 +#: build/C/man2/getsockopt.2:108 msgid "" "The arguments I and I are used to access option values for " "B(). For B() they identify a buffer in which the " @@ -1817,7 +1820,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:116 +#: build/C/man2/getsockopt.2:118 msgid "" "I and any specified options are passed uninterpreted to the " "appropriate protocol module for interpretation. The include file " @@ -1827,7 +1830,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:125 +#: build/C/man2/getsockopt.2:127 msgid "" "Most socket-level options utilize an I argument for I. For " "B(), the argument should be nonzero to enable a boolean option, " @@ -1835,14 +1838,14 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:129 +#: build/C/man2/getsockopt.2:131 msgid "" "For a description of the available socket options see B(7) and the " "appropriate protocol man pages." msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:150 +#: build/C/man2/getsockopt.2:152 msgid "" "The address pointed to by I is not in a valid part of the process " "address space. For B(), this error may also be returned if " @@ -1850,7 +1853,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:161 +#: build/C/man2/getsockopt.2:163 msgid "" "I invalid in B(). In some cases this error can also " "occur for an invalid value in I (e.g., for the B " @@ -1858,13 +1861,13 @@ msgid "" msgstr "" #. type: TP -#: build/C/man2/getsockopt.2:161 +#: build/C/man2/getsockopt.2:163 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:164 +#: build/C/man2/getsockopt.2:166 msgid "The option is unknown at the level indicated." msgstr "" @@ -1873,12 +1876,12 @@ msgstr "" #. .BR SO_SNDLOWAT ", " SO_RCVLOWAT ", " SO_SNDTIMEO ", " SO_RCVTIMEO #. options #. type: Plain text -#: build/C/man2/getsockopt.2:176 +#: build/C/man2/getsockopt.2:178 msgid "SVr4, 4.4BSD (these system calls first appeared in 4.2BSD), POSIX.1-2001." msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:197 +#: build/C/man2/getsockopt.2:199 msgid "" "The I argument of B() and B() is in " "reality an I (and this is what 4.x BSD and libc4 and libc5 have). " @@ -1887,44 +1890,318 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:200 +#: build/C/man2/getsockopt.2:202 msgid "" "Several of the socket options should be handled at lower levels of the " "system." msgstr "" #. type: Plain text -#: build/C/man2/getsockopt.2:208 +#: build/C/man2/getsockopt.2:210 msgid "" "B(2), B(2), B(3), B(5), B(7), " "B(7), B(7)" msgstr "" #. type: TH -#: build/C/man2/listen.2:43 +#: build/C/man3/if_nameindex.3:26 +#, no-wrap +msgid "IF_NAMEINDEX" +msgstr "" + +#. type: TH +#: build/C/man3/if_nameindex.3:26 +#, no-wrap +msgid "2012-11-21" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:29 +msgid "if_nameindex, if_freenameindex - get network interface names and indexes" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:32 build/C/man3/if_nametoindex.3:32 +#, no-wrap +msgid "B<#include Enet/if.hE>\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:35 +#, no-wrap +msgid "" +"B\n" +"BIB<);>\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:46 +msgid "" +"The B() function returns an array of I " +"structures, each containing information about one of the network interfaces " +"on the local system. The I structure contains at least the " +"following entries:" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:51 +#, no-wrap +msgid "" +" unsigned int if_index; /* Index of interface (1, 2, ...) */\n" +" char *if_name; /* Null-terminated name (\"eth0\", etc.) */\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:65 +msgid "" +"The I field contains the interface index. The I field " +"points to the null-terminated interface name. The end of the array is " +"indicated by entry with I set to zero and I set to NULL." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:71 +msgid "" +"The data structure returned by B() is dynamically allocated " +"and should be freed using B() when no longer needed." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:78 +msgid "" +"On success, B() returns pointer to the array; on error, a " +"NULL pointer is returned, and I is set appropriately." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:83 +msgid "B() may fail and set I if:" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:86 +msgid "Insufficient resources available." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:97 +msgid "" +"B() may also fail for any of the errors specified for " +"B(2), B(2), B(2), B(2), B(2), " +"B(2), or B(3)." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:104 +msgid "" +"The B() function first appeared in glibc 2.1, but before " +"glibc 2.3.4, the implementation only supported interfaces with IPv4 " +"addresses. Support of interfaces that don't have IPv4 addresses is only " +"available on kernels that support netlink." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:106 build/C/man3/if_nametoindex.3:87 +msgid "RFC\\ 3493, POSIX.1-2001." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:108 build/C/man3/if_nametoindex.3:89 +msgid "This function first appeared in BSDi." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:112 +msgid "" +"The program below demonstrates the use of the functions described on this " +"page. An example of the output this program might produce is the following:" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:118 +#, no-wrap +msgid "" +"$ B<./a.out>I<\n" +"1: lo\n" +"2: wlan0\n" +"3: em1>\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:126 +#, no-wrap +msgid "" +"#include Enet/if.hE\n" +"#include Estdio.hE\n" +"#include Estdlib.hE\n" +"#include Eunistd.hE\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:131 +#, no-wrap +msgid "" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" struct if_nameindex *if_ni, *i;\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:137 +#, no-wrap +msgid "" +" if_ni = if_nameindex();\n" +" if (if_ni == NULL) {\n" +" perror(\"if_nameindex\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:140 +#, no-wrap +msgid "" +" for (i = if_ni; ! (i-Eif_index == 0 && i-Eif_name == NULL); " +"i++)\n" +" printf(\"%u: %s\\en\", i-Eif_index, i-Eif_name);\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:142 +#, no-wrap +msgid " if_freenameindex(if_ni);\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:145 build/C/man2/select.2:573 +#, no-wrap +msgid "" +" exit(EXIT_SUCCESS);\n" +"}\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nameindex.3:153 +msgid "" +"B(2), B(2), B(3), B(3), " +"B(3), B(8)" +msgstr "" + +#. type: TH +#: build/C/man3/if_nametoindex.3:25 +#, no-wrap +msgid "IF_NAMETOINDEX" +msgstr "" + +#. type: TH +#: build/C/man3/if_nametoindex.3:25 +#, no-wrap +msgid "2012-12-14" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:29 +msgid "" +"if_nametoindex, if_indextoname - mappings between network interface names " +"and indexes" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:34 +#, no-wrap +msgid "BIB<);>\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:36 +#, no-wrap +msgid "BIB<);>\n" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:43 +msgid "" +"The B() function returns the index of the network interface " +"corresponding to the name I." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:54 +msgid "" +"The B() function returns the name of the network interface " +"corresponding to the interface index I. The name is placed in the " +"buffer pointed to by I. The buffer must allow for the storage of at " +"least B bytes." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:61 +msgid "" +"On success, B() returns the index number of the network " +"interface; on error, 0 is returned and I is set appropriately." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:69 +msgid "" +"On success, B() returns I; on error, NULL is " +"returned and I is set appropriately." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:74 +msgid "B() may fail and set I if:" +msgstr "" + +#. type: TP +#: build/C/man3/if_nametoindex.3:74 +#, no-wrap +msgid "B" +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:77 +msgid "No interface found for the index." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:85 +msgid "" +"B() and B() may also fail for any of the " +"errors specified for B(2) or B(2)." +msgstr "" + +#. type: Plain text +#: build/C/man3/if_nametoindex.3:93 +msgid "B(3), B(3), B(8)" +msgstr "" + +#. type: TH +#: build/C/man2/listen.2:45 #, no-wrap msgid "LISTEN" msgstr "" #. type: TH -#: build/C/man2/listen.2:43 +#: build/C/man2/listen.2:45 #, no-wrap msgid "2008-11-20" msgstr "" #. type: Plain text -#: build/C/man2/listen.2:46 +#: build/C/man2/listen.2:48 msgid "listen - listen for connections on a socket" msgstr "" #. type: Plain text -#: build/C/man2/listen.2:53 +#: build/C/man2/listen.2:55 #, no-wrap msgid "BIB<, int >IB<);>\n" msgstr "" #. type: Plain text -#: build/C/man2/listen.2:61 +#: build/C/man2/listen.2:63 msgid "" "B() marks the socket referred to by I as a passive socket, " "that is, as a socket that will be used to accept incoming connection " @@ -1932,14 +2209,14 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/listen.2:68 +#: build/C/man2/listen.2:70 msgid "" "The I argument is a file descriptor that refers to a socket of type " "B or B." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:80 +#: build/C/man2/listen.2:82 msgid "" "The I argument defines the maximum length to which the queue of " "pending connections for I may grow. If a connection request arrives " @@ -1949,82 +2226,82 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/listen.2:89 +#: build/C/man2/listen.2:91 msgid "Another socket is already listening on the same port." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:99 build/C/man2/send.2:352 +#: build/C/man2/listen.2:101 build/C/man2/send.2:354 msgid "The argument I is not a socket." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:104 +#: build/C/man2/listen.2:106 msgid "The socket is not of a type that supports the B() operation." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:109 +#: build/C/man2/listen.2:111 msgid "" "4.4BSD, POSIX.1-2001. The B() function call first appeared in " "4.2BSD." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:111 +#: build/C/man2/listen.2:113 msgid "To accept connections, the following steps are performed:" msgstr "" #. type: TP -#: build/C/man2/listen.2:112 build/C/man2/select_tut.2:345 +#: build/C/man2/listen.2:114 build/C/man2/select_tut.2:347 #, no-wrap msgid "1." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:115 +#: build/C/man2/listen.2:117 msgid "A socket is created with B(2)." msgstr "" #. type: TP -#: build/C/man2/listen.2:115 build/C/man2/select_tut.2:354 +#: build/C/man2/listen.2:117 build/C/man2/select_tut.2:356 #, no-wrap msgid "2." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:121 +#: build/C/man2/listen.2:123 msgid "" "The socket is bound to a local address using B(2), so that other " "sockets may be B(2)ed to it." msgstr "" #. type: TP -#: build/C/man2/listen.2:121 build/C/man2/select_tut.2:358 +#: build/C/man2/listen.2:123 build/C/man2/select_tut.2:360 #, no-wrap msgid "3." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:125 +#: build/C/man2/listen.2:127 msgid "" "A willingness to accept incoming connections and a queue limit for incoming " "connections are specified with B()." msgstr "" #. type: TP -#: build/C/man2/listen.2:125 build/C/man2/select_tut.2:365 +#: build/C/man2/listen.2:127 build/C/man2/select_tut.2:367 #, no-wrap msgid "4." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:128 +#: build/C/man2/listen.2:130 msgid "Connections are accepted with B(2)." msgstr "" #. type: Plain text -#: build/C/man2/listen.2:151 +#: build/C/man2/listen.2:153 msgid "" "The behavior of the I argument on TCP sockets changed with Linux " "2.2. Now it specifies the queue length for I established " @@ -2039,7 +2316,7 @@ msgstr "" #. Don't rely on this value in portable applications since BSD #. (and some BSD-derived systems) limit the backlog to 5. #. type: Plain text -#: build/C/man2/listen.2:164 +#: build/C/man2/listen.2:166 msgid "" "If the I argument is greater than the value in " "I, then it is silently truncated to that " @@ -2048,35 +2325,35 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/listen.2:173 +#: build/C/man2/listen.2:175 msgid "B(2), B(2), B(2), B(2), B(7)" msgstr "" #. type: TH -#: build/C/man2/recv.2:39 +#: build/C/man2/recv.2:41 #, no-wrap msgid "RECV" msgstr "" #. type: TH -#: build/C/man2/recv.2:39 +#: build/C/man2/recv.2:41 #, no-wrap -msgid "2011-09-16" +msgid "2012-12-21" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:42 +#: build/C/man2/recv.2:44 msgid "recv, recvfrom, recvmsg - receive a message from a socket" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:47 build/C/man2/select.2:53 build/C/man2/select_tut.2:45 +#: build/C/man2/recv.2:49 build/C/man2/select.2:53 build/C/man2/select_tut.2:47 #, no-wrap msgid "B<#include Esys/types.hE>\n" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:51 +#: build/C/man2/recv.2:53 #, no-wrap msgid "" "BIB<, void *>IB<, size_t >IB<, int " @@ -2084,7 +2361,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:54 +#: build/C/man2/recv.2:56 #, no-wrap msgid "" "BIB<, void *>IB<, size_t >IB<, int " @@ -2094,7 +2371,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:56 +#: build/C/man2/recv.2:58 #, no-wrap msgid "" "BIB<, struct msghdr *>IB<, int " @@ -2102,7 +2379,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:64 +#: build/C/man2/recv.2:66 msgid "" "The B() and B() calls are used to receive messages from " "a socket, and may be used to receive data on a socket whether or not it is " @@ -2118,7 +2395,7 @@ msgstr "" #. [The above notes on AF_UNIX and AF_INET sockets apply as at #. Kernel 2.4.18. (MTK, 22 Jul 02)] #. type: Plain text -#: build/C/man2/recv.2:93 +#: build/C/man2/recv.2:95 msgid "" "If I is not NULL, and the underlying protocol provides the source " "address, this source address is filled in. When I is NULL, " @@ -2132,7 +2409,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:105 +#: build/C/man2/recv.2:107 msgid "" "The B() call is normally used only on a I socket (see " "B(2)) and is identical to B() with a NULL I " @@ -2140,7 +2417,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:111 +#: build/C/man2/recv.2:113 msgid "" "All three routines return the length of the message on successful " "completion. If a message is too long to fit in the supplied buffer, excess " @@ -2149,7 +2426,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:121 +#: build/C/man2/recv.2:123 msgid "" "If no messages are available at the socket, the receive calls wait for a " "message to arrive, unless the socket is nonblocking (see B(2)), in " @@ -2160,27 +2437,27 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recv.2:127 +#: build/C/man2/recv.2:129 msgid "" "The B(2), " "B(2), B(2), B(3), B(3), B(7)" msgstr "" #. type: TH -#: build/C/man2/recvmmsg.2:26 +#: build/C/man2/recvmmsg.2:31 #, no-wrap msgid "RECVMMSG" msgstr "" #. type: TH -#: build/C/man2/recvmmsg.2:26 +#: build/C/man2/recvmmsg.2:31 #, no-wrap -msgid "2011-10-04" +msgid "2012-12-24" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:29 +#: build/C/man2/recvmmsg.2:34 msgid "recvmmsg - receive multiple messages on a socket" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:33 build/C/man2/sendmmsg.2:35 +#: build/C/man2/recvmmsg.2:38 build/C/man2/sendmmsg.2:35 #, no-wrap msgid "" "B<#define _GNU_SOURCE>\n" @@ -2647,7 +2925,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:36 +#: build/C/man2/recvmmsg.2:41 #, no-wrap msgid "" "BIB<, struct mmsghdr *>IB<, unsigned int " @@ -2655,13 +2933,13 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:38 +#: build/C/man2/recvmmsg.2:43 #, no-wrap msgid "B< unsigned int >IB<, struct timespec *>IB<);>\n" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:50 +#: build/C/man2/recvmmsg.2:55 msgid "" "The B() system call is an extension of B(2) that allows " "the caller to receive multiple messages from a socket using a single system " @@ -2671,26 +2949,26 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:54 +#: build/C/man2/recvmmsg.2:59 msgid "" "The I argument is the file descriptor of the socket to receive data " "from." msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:62 build/C/man2/sendmmsg.2:62 +#: build/C/man2/recvmmsg.2:67 build/C/man2/sendmmsg.2:62 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 -#: build/C/man2/recvmmsg.2:68 build/C/man2/sendmmsg.2:68 +#: build/C/man2/recvmmsg.2:73 build/C/man2/sendmmsg.2:68 msgid "The I structure is defined in Isys/socket.hE> as:" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:75 +#: build/C/man2/recvmmsg.2:80 #, no-wrap msgid "" "struct mmsghdr {\n" @@ -2700,7 +2978,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:90 +#: build/C/man2/recvmmsg.2:95 msgid "" "The I field is a I structure, as described in " "B(2). The I field is the number of bytes returned for the " @@ -2709,34 +2987,36 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:97 +#: build/C/man2/recvmmsg.2:102 msgid "" "The I argument contains flags ORed together. The flags are the same " "as documented for B(2), with the following addition:" msgstr "" #. type: TP -#: build/C/man2/recvmmsg.2:97 +#: build/C/man2/recvmmsg.2:102 #, no-wrap -msgid "B" +msgid "B (since Linux 2.6.34)" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:102 +#: build/C/man2/recvmmsg.2:107 msgid "Turns on B after the first message has been received." msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:115 +#: build/C/man2/recvmmsg.2:123 msgid "" "The I argument points to a I (see " "B(2)) defining a timeout (seconds plus nanoseconds) for the " -"receive operation. If I is I then the operation blocks " -"indefinitely." +"receive operation. (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 is I then the operation " +"blocks indefinitely." msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:126 +#: build/C/man2/recvmmsg.2:134 msgid "" "A blocking B() call blocks until I messages have been " "received or until the timeout expires. A nonblocking call reads as many " @@ -2745,7 +3025,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:141 +#: build/C/man2/recvmmsg.2:149 msgid "" "On return from B(), successive elements of I are updated " "to contain information about each received message: I contains the " @@ -2755,7 +3035,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:149 +#: build/C/man2/recvmmsg.2:157 msgid "" "On success, B() returns the number of messages received in " "I; on error, -1 is returned, and I is set to indicate the " @@ -2763,31 +3043,173 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:153 +#: build/C/man2/recvmmsg.2:161 msgid "" "Errors are as for B(2). In addition, the following error can " "occur:" msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:157 +#: build/C/man2/recvmmsg.2:165 msgid "I is invalid." msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:162 +#: build/C/man2/recvmmsg.2:170 msgid "" -"The B() system call was added in Linux 2.6.32. Support in glibc " +"The B() system call was added in Linux 2.6.33. Support in glibc " "was added in version 2.12." msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:165 +#: build/C/man2/recvmmsg.2:173 msgid "B() is Linux-specific." msgstr "" #. type: Plain text -#: build/C/man2/recvmmsg.2:172 +#: build/C/man2/recvmmsg.2:181 +msgid "" +"The following program uses B() 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." +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:184 +msgid "" +"The following snippet periodically generates UDP datagrams containing a " +"random number:" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:189 +#, no-wrap +msgid "" +"$B< while true; do echo $RANDOM E /dev/udp/127.0.0.1/1234; >\n" +"B\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:194 +msgid "" +"These datagrams are read by the example application, which can give the " +"following output:" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:204 +#, no-wrap +msgid "" +"$B< ./a.out>\n" +"5 messages received\n" +"1 11782\n" +"2 11345\n" +"3 304\n" +"4 13514\n" +"5 28421\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:215 +#, no-wrap +msgid "" +"#define _GNU_SOURCE\n" +"#include Enetinet/ip.hE\n" +"#include Estdio.hE\n" +"#include Estdlib.hE\n" +"#include Estring.hE\n" +"#include Esys/socket.hE\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:228 +#, no-wrap +msgid "" +"int\n" +"main(void)\n" +"{\n" +"#define VLEN 10\n" +"#define BUFSIZE 200\n" +"#define TIMEOUT 1\n" +" int sockfd, retval, i;\n" +" struct sockaddr_in sa;\n" +" struct mmsghdr msgs[VLEN];\n" +" struct iovec iovecs[VLEN];\n" +" char bufs[VLEN][BUFSIZE+1];\n" +" struct timespec timeout;\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:234 build/C/man2/sendmmsg.2:201 +#, 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 +#: build/C/man2/recvmmsg.2:242 +#, no-wrap +msgid "" +" sa.sin_family = AF_INET;\n" +" sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);\n" +" sa.sin_port = htons(1234);\n" +" if (bind(sockfd, (struct sockaddr *) &sa, sizeof(sa)) == -1) {\n" +" perror(\"bind()\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:250 +#, no-wrap +msgid "" +" memset(msgs, 0, sizeof(msgs));\n" +" for (i = 0; i E VLEN; i++) {\n" +" iovecs[i].iov_base = bufs[i];\n" +" iovecs[i].iov_len = BUFSIZE;\n" +" msgs[i].msg_hdr.msg_iov = &iovecs[i];\n" +" msgs[i].msg_hdr.msg_iovlen = 1;\n" +" }\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:253 +#, no-wrap +msgid "" +" timeout.tv_sec = TIMEOUT;\n" +" timeout.tv_nsec = 0;\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:259 +#, no-wrap +msgid "" +" retval = recvmmsg(sockfd, msgs, VLEN, 0, &timeout);\n" +" if (retval == -1) {\n" +" perror(\"recvmmsg()\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:267 +#, no-wrap +msgid "" +" printf(\"%d messages received\\en\", retval);\n" +" for (i = 0; i E retval; i++) {\n" +" bufs[i][msgs[i].msg_len] = 0;\n" +" printf(\"%d %s\", i+1, bufs[i]);\n" +" }\n" +" exit(EXIT_SUCCESS);\n" +"}\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/recvmmsg.2:275 msgid "" "B(2), B(2), B(2), B(2), " "B(2), B(7)" @@ -2802,42 +3224,42 @@ msgstr "" #. type: TH #: build/C/man2/select.2:38 #, no-wrap -msgid "2010-08-31" +msgid "2012-08-17" msgstr "" #. type: Plain text -#: build/C/man2/select.2:42 build/C/man2/select_tut.2:34 +#: build/C/man2/select.2:42 build/C/man2/select_tut.2:36 msgid "" "select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - synchronous I/O " "multiplexing" msgstr "" #. type: Plain text -#: build/C/man2/select.2:45 build/C/man2/select_tut.2:37 +#: build/C/man2/select.2:45 build/C/man2/select_tut.2:39 #, no-wrap msgid "/* According to POSIX.1-2001 */\n" msgstr "" #. type: Plain text -#: build/C/man2/select.2:47 build/C/man2/select.2:68 build/C/man2/select_tut.2:39 build/C/man2/select_tut.2:60 +#: build/C/man2/select.2:47 build/C/man2/select.2:68 build/C/man2/select_tut.2:41 build/C/man2/select_tut.2:62 #, no-wrap msgid "B<#include Esys/select.hE>\n" msgstr "" #. type: Plain text -#: build/C/man2/select.2:49 build/C/man2/select_tut.2:41 +#: build/C/man2/select.2:49 build/C/man2/select_tut.2:43 #, no-wrap msgid "/* According to earlier standards */\n" msgstr "" #. type: Plain text -#: build/C/man2/select.2:51 build/C/man2/select_tut.2:43 +#: build/C/man2/select.2:51 build/C/man2/select_tut.2:45 #, no-wrap msgid "B<#include Esys/time.hE>\n" msgstr "" #. type: Plain text -#: build/C/man2/select.2:55 build/C/man2/select_tut.2:47 +#: build/C/man2/select.2:55 build/C/man2/select_tut.2:49 #, no-wrap msgid "B<#include Eunistd.hE>\n" msgstr "" @@ -2852,25 +3274,25 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:60 build/C/man2/select_tut.2:52 +#: build/C/man2/select.2:60 build/C/man2/select_tut.2:54 #, no-wrap msgid "BIB<, fd_set *>IB<);>\n" msgstr "" #. type: Plain text -#: build/C/man2/select.2:62 build/C/man2/select_tut.2:54 +#: build/C/man2/select.2:62 build/C/man2/select_tut.2:56 #, no-wrap msgid "BIB<, fd_set *>IB<);>\n" msgstr "" #. type: Plain text -#: build/C/man2/select.2:64 build/C/man2/select_tut.2:56 +#: build/C/man2/select.2:64 build/C/man2/select_tut.2:58 #, no-wrap msgid "BIB<, fd_set *>IB<);>\n" msgstr "" #. type: Plain text -#: build/C/man2/select.2:66 build/C/man2/select_tut.2:58 +#: build/C/man2/select.2:66 build/C/man2/select_tut.2:60 #, no-wrap msgid "BIB<);>\n" msgstr "" @@ -2887,12 +3309,12 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:77 build/C/man2/select_tut.2:69 build/C/man3/sockatmark.3:34 +#: build/C/man2/select.2:77 build/C/man2/select_tut.2:71 build/C/man3/sockatmark.3:36 msgid "Feature Test Macro Requirements for glibc (see B(7)):" msgstr "" #. type: Plain text -#: build/C/man2/select.2:81 build/C/man2/select_tut.2:73 +#: build/C/man2/select.2:81 build/C/man2/select_tut.2:75 msgid "" "B(): _POSIX_C_SOURCE\\ E=\\ 200112L || _XOPEN_SOURCE\\ E=\\ " "600" @@ -2911,8 +3333,8 @@ msgstr "" #. type: Plain text #: build/C/man2/select.2:98 msgid "" -"The operation of B() and B() is identical, other than " +"these three differences:" msgstr "" #. type: TP @@ -2986,16 +3408,19 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:175 +#: build/C/man2/select.2:179 msgid "" -"I is an upper bound on the amount of time elapsed before " -"B() returns immediately. (This is useful for polling.) If " -"I is NULL (no timeout), B() " +"should block waiting for a file descriptor to become ready. (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 " +"both fields of the I structure are zero, then B() can block indefinitely." msgstr "" #. type: Plain text -#: build/C/man2/select.2:185 +#: build/C/man2/select.2:189 msgid "" "I is a pointer to a signal mask (see B(2)); if it is " "not NULL, then B() first replaces the current signal mask by the " @@ -3004,14 +3429,14 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:191 +#: build/C/man2/select.2:195 msgid "" "Other than the difference in the precision of the I argument, the " "following B() call:" msgstr "" #. type: Plain text -#: build/C/man2/select.2:195 +#: build/C/man2/select.2:199 #, no-wrap msgid "" " ready = pselect(nfds, &readfds, &writefds, &exceptfds,\n" @@ -3019,27 +3444,27 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:200 +#: build/C/man2/select.2:204 msgid "is equivalent to I executing the following calls:" msgstr "" #. type: Plain text -#: build/C/man2/select.2:203 +#: build/C/man2/select.2:207 #, no-wrap msgid " sigset_t origmask;\n" msgstr "" #. type: Plain text -#: build/C/man2/select.2:207 +#: build/C/man2/select.2:211 #, no-wrap msgid "" -" sigprocmask(SIG_SETMASK, &sigmask, &origmask);\n" +" pthread_sigmask(SIG_SETMASK, &sigmask, &origmask);\n" " ready = select(nfds, &readfds, &writefds, &exceptfds, timeout);\n" -" sigprocmask(SIG_SETMASK, &origmask, NULL);\n" +" pthread_sigmask(SIG_SETMASK, &origmask, NULL);\n" msgstr "" #. type: Plain text -#: build/C/man2/select.2:228 +#: build/C/man2/select.2:232 msgid "" "The reason that B() is needed is that if one wants to wait for " "either a signal or for a file descriptor to become ready, then an atomic " @@ -3052,20 +3477,20 @@ msgid "" msgstr "" #. type: SS -#: build/C/man2/select.2:228 +#: build/C/man2/select.2:232 #, no-wrap msgid "The timeout" msgstr "" #. type: Plain text -#: build/C/man2/select.2:232 +#: build/C/man2/select.2:236 msgid "" "The time structures involved are defined in Isys/time.hE> and look " "like" msgstr "" #. type: Plain text -#: build/C/man2/select.2:239 +#: build/C/man2/select.2:243 #, no-wrap msgid "" "struct timeval {\n" @@ -3075,12 +3500,12 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:243 +#: build/C/man2/select.2:247 msgid "and" msgstr "" #. type: Plain text -#: build/C/man2/select.2:250 +#: build/C/man2/select.2:254 #, no-wrap msgid "" "struct timespec {\n" @@ -3090,12 +3515,12 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:254 +#: build/C/man2/select.2:258 msgid "(However, see below on the POSIX.1-2001 versions.)" msgstr "" #. type: Plain text -#: build/C/man2/select.2:262 +#: build/C/man2/select.2:266 msgid "" "Some code calls B() modifies I to reflect the amount of time not " "slept; most other implementations do not do this. (POSIX.1-2001 permits " @@ -3119,7 +3544,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:302 +#: build/C/man2/select.2:306 msgid "" "On success, B() conforms to POSIX.1-2001 and 4.4BSD (B(). The POSIX.1-2001 situation is that one " @@ -3218,7 +3643,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:410 +#: build/C/man2/select.2:414 msgid "" "Libc4 and libc5 do not have a Isys/select.hE> header; under glibc " "2.0 and later this header exists. Under glibc 2.0 it unconditionally gives " @@ -3228,15 +3653,43 @@ msgid "" msgstr "" #. type: SS -#: build/C/man2/select.2:410 +#: build/C/man2/select.2:414 +#, no-wrap +msgid "Multithreaded applications" +msgstr "" + +#. type: Plain text +#: build/C/man2/select.2:430 +msgid "" +"If a file descriptor being monitored by B() " +"unblocks and returns, with an indication that the file descriptor is ready " +"(a subsequent I/O operation will likely fail with an error, unless another " +"the file descriptor reopened between the time B(). In " +"summary, any application that relies on a particular behavior in this " +"scenario must be considered buggy." +msgstr "" + +#. type: SS +#: build/C/man2/select.2:430 #, no-wrap -msgid "Linux Notes" +msgid "Linux notes" +msgstr "" + +#. type: Plain text +#: build/C/man2/select.2:438 +msgid "" +"The B() interface described in this page is implemented by glibc. " +"The underlying Linux system call is named B(). This system call " +"has somewhat different behavior from the glibc wrapper function." msgstr "" #. type: Plain text -#: build/C/man2/select.2:425 +#: build/C/man2/select.2:453 msgid "" -"The Linux B() system call modifies its I argument. " +"The Linux B() system call modifies its I argument. " "However, the glibc wrapper function hides this behavior by using a local " "variable for the timeout argument that is passed to the system call. Thus, " "the glibc B() function does not modify its I argument; " @@ -3244,14 +3697,40 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:431 +#: build/C/man2/select.2:459 +msgid "" +"The final argument of the B() system call is not a I pointer, but is instead a structure of the form:" +msgstr "" + +#. type: Plain text +#: build/C/man2/select.2:467 +#, no-wrap +msgid "" +"struct {\n" +" const sigset_t *ss; /* Pointer to signal set */\n" +" size_t ss_len; /* Size (in bytes) of object pointed\n" +" to by 'ss' */\n" +"};\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/select.2:474 +msgid "" +"This allows the system call to obtain both a pointer to the signal set and " +"its size, while allowing for the fact that most architectures support a " +"maximum of 6 arguments to a system call." +msgstr "" + +#. type: Plain text +#: build/C/man2/select.2:480 msgid "" "Glibc 2.0 provided a version of B() that did not take a I " "argument." msgstr "" #. type: Plain text -#: build/C/man2/select.2:444 +#: build/C/man2/select.2:493 msgid "" "Starting with version 2.1, glibc provided an emulation of B() that " "was implemented using B(2) and B() in the " -"main program.)" +"trapping can be achieved using the self-pipe trick. In this technique, a " +"signal handler writes a byte to a pipe whose other end is monitored by " +"B() may report a socket file descriptor as \"ready for " "reading\", while nevertheless a subsequent read blocks. This could for " @@ -3284,7 +3765,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select.2:484 +#: build/C/man2/select.2:537 msgid "" "On Linux, B() (or B()) is used to efficiently monitor multiple file " "descriptors, to see if any of them is, or becomes, \"ready\"; that is, to " @@ -3419,7 +3891,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:106 +#: build/C/man2/select_tut.2:108 msgid "" "Its principal arguments are three \"sets\" of file descriptors: I, " "I, and I. Each set is declared as type I, and " @@ -3434,19 +3906,19 @@ msgid "" msgstr "" #. type: SS -#: build/C/man2/select_tut.2:106 +#: build/C/man2/select_tut.2:108 #, no-wrap msgid "Arguments" msgstr "" #. type: TP -#: build/C/man2/select_tut.2:107 +#: build/C/man2/select_tut.2:109 #, no-wrap msgid "I" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:116 +#: build/C/man2/select_tut.2:118 msgid "" "This set is watched to see if data is available for reading from any of its " "file descriptors. After B() has returned, I will be " @@ -3470,13 +3942,13 @@ msgid "" msgstr "" #. type: TP -#: build/C/man2/select_tut.2:125 +#: build/C/man2/select_tut.2:127 #, no-wrap msgid "I" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:147 +#: build/C/man2/select_tut.2:149 msgid "" "This set is watched for \"exceptional conditions\". In practice, only one " "such exceptional condition is common: the availability of I " @@ -3489,13 +3961,13 @@ msgid "" msgstr "" #. type: TP -#: build/C/man2/select_tut.2:147 +#: build/C/man2/select_tut.2:149 #, no-wrap msgid "I" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:154 +#: build/C/man2/select_tut.2:156 msgid "" "This is an integer one more than the maximum of any file descriptor in any " "of the sets. In other words, while adding file descriptors to each of the " @@ -3504,13 +3976,13 @@ msgid "" msgstr "" #. type: TP -#: build/C/man2/select_tut.2:154 +#: build/C/man2/select_tut.2:156 #, no-wrap msgid "I" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:167 +#: build/C/man2/select_tut.2:169 msgid "" "This is the longest time B()? Can't I just read and write to my " "descriptors whenever I want? The point of B() come across behavior that is " "difficult to understand and produces nonportable or borderline results. For " @@ -3746,7 +4218,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:354 +#: build/C/man2/select_tut.2:356 msgid "" "You should always try to use B() call, and respond appropriately. See next " @@ -3769,20 +4241,20 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:371 +#: build/C/man2/select_tut.2:373 msgid "" "After B() call can return -1 with I set to B, or " @@ -3827,26 +4299,26 @@ msgid "" msgstr "" #. type: TP -#: build/C/man2/select_tut.2:416 +#: build/C/man2/select_tut.2:418 #, no-wrap msgid "8." msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:425 +#: build/C/man2/select_tut.2:427 msgid "" "Never call B(2), B(2), B(2), or B(2) with a buffer " "length of zero." msgstr "" #. type: TP -#: build/C/man2/select_tut.2:425 +#: build/C/man2/select_tut.2:427 #, no-wrap msgid "9." msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:441 +#: build/C/man2/select_tut.2:443 msgid "" "If the functions B(2), B(2), B(2), and B(2) fail " "with errors other than those listed in B<7.>, or one of the input functions " @@ -3857,13 +4329,13 @@ msgid "" msgstr "" #. type: TP -#: build/C/man2/select_tut.2:441 +#: build/C/man2/select_tut.2:443 #, no-wrap msgid "10." msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:448 +#: build/C/man2/select_tut.2:450 msgid "" "The timeout value must be initialized with each new call to B() modifies its file descriptor sets, if the call is being " "used in a loop, then the sets must be reinitialized before each call." msgstr "" #. type: SS -#: build/C/man2/select_tut.2:467 +#: build/C/man2/select_tut.2:469 #, no-wrap -msgid "Usleep Emulation" +msgid "Usleep emulation" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:474 +#: build/C/man2/select_tut.2:476 msgid "" "On systems that do not have a B(3) function, you can call " "B() returns the total number of file descriptors still " "present in the file descriptor sets." msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:494 +#: build/C/man2/select_tut.2:496 msgid "" "If B(). B(), and " "is somewhat more efficient when monitoring sparse file descriptor sets. It " @@ -3965,7 +4437,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:527 +#: build/C/man2/select_tut.2:529 msgid "" "The Linux-specific B(7) API provides an interface that is more " "efficient than B(). The listing below is a TCP forwarding program that forwards " @@ -3981,7 +4453,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:545 +#: build/C/man2/select_tut.2:547 #, no-wrap msgid "" "#include Estdlib.hE\n" @@ -3998,13 +4470,13 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:547 +#: build/C/man2/select_tut.2:549 #, no-wrap msgid "static int forward_port;\n" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:550 +#: build/C/man2/select_tut.2:552 #, no-wrap msgid "" "#undef max\n" @@ -4012,7 +4484,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:557 +#: build/C/man2/select_tut.2:559 #, no-wrap msgid "" "static int\n" @@ -4024,7 +4496,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:581 +#: build/C/man2/select_tut.2:583 #, no-wrap msgid "" " if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n" @@ -4033,7 +4505,7 @@ msgid "" " }\n" " yes = 1;\n" " if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR,\n" -" (char *) &yes, sizeof(yes)) == -1) {\n" +" &yes, sizeof(yes)) == -1) {\n" " perror(\"setsockopt\");\n" " close(s);\n" " return -1;\n" @@ -4053,7 +4525,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:587 +#: build/C/man2/select_tut.2:589 #, no-wrap msgid "" "static int\n" @@ -4064,7 +4536,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:593 +#: build/C/man2/select_tut.2:595 #, no-wrap msgid "" " if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) {\n" @@ -4075,7 +4547,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:597 +#: build/C/man2/select_tut.2:599 #, no-wrap msgid "" " memset(&a, 0, sizeof(a));\n" @@ -4084,7 +4556,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:603 +#: build/C/man2/select_tut.2:605 #, no-wrap msgid "" " if (!inet_aton(address, (struct in_addr *) &a.sin_addr.s_addr)) {\n" @@ -4095,7 +4567,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:612 +#: build/C/man2/select_tut.2:614 #, no-wrap msgid "" " if (connect(s, (struct sockaddr *) &a, sizeof(a)) == -1) {\n" @@ -4109,7 +4581,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:620 +#: build/C/man2/select_tut.2:622 #, no-wrap msgid "" "#define SHUT_FD1 do { \\e\n" @@ -4122,7 +4594,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:628 +#: build/C/man2/select_tut.2:630 #, no-wrap msgid "" "#define SHUT_FD2 do { \\e\n" @@ -4135,13 +4607,13 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:630 +#: build/C/man2/select_tut.2:632 #, no-wrap msgid "#define BUF_SIZE 1024\n" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:639 +#: build/C/man2/select_tut.2:641 #, no-wrap msgid "" "int\n" @@ -4155,7 +4627,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:645 +#: build/C/man2/select_tut.2:647 #, no-wrap msgid "" " if (argc != 4) {\n" @@ -4167,19 +4639,19 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:647 +#: build/C/man2/select_tut.2:649 #, no-wrap msgid " signal(SIGPIPE, SIG_IGN);\n" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:649 +#: build/C/man2/select_tut.2:651 #, no-wrap msgid " forward_port = atoi(argv[2]);\n" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:653 +#: build/C/man2/select_tut.2:655 #, no-wrap msgid "" " h = listen_socket(atoi(argv[1]));\n" @@ -4188,7 +4660,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:657 +#: build/C/man2/select_tut.2:659 #, no-wrap msgid "" " for (;;) {\n" @@ -4197,7 +4669,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:687 +#: build/C/man2/select_tut.2:689 #, no-wrap msgid "" " FD_ZERO(&rd);\n" @@ -4232,13 +4704,13 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:689 +#: build/C/man2/select_tut.2:691 #, no-wrap msgid " r = select(nfds + 1, &rd, &wr, &er, NULL);\n" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:692 +#: build/C/man2/select_tut.2:694 #, no-wrap msgid "" " if (r == -1 && errno == EINTR)\n" @@ -4246,7 +4718,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:697 +#: build/C/man2/select_tut.2:699 #, no-wrap msgid "" " if (r == -1) {\n" @@ -4256,7 +4728,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:701 +#: build/C/man2/select_tut.2:703 #, no-wrap msgid "" " if (FD_ISSET(h, &rd)) {\n" @@ -4265,7 +4737,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:720 +#: build/C/man2/select_tut.2:722 #, no-wrap msgid "" " memset(&client_address, 0, l = sizeof(client_address));\n" @@ -4289,13 +4761,13 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:722 +#: build/C/man2/select_tut.2:724 #, no-wrap msgid " /* NB: read oob data before normal reads */\n" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:726 +#: build/C/man2/select_tut.2:728 #, no-wrap msgid "" " if (fd1 E 0)\n" @@ -4304,7 +4776,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:736 +#: build/C/man2/select_tut.2:738 #, no-wrap msgid "" " r = recv(fd1, &c, 1, MSG_OOB);\n" @@ -4319,7 +4791,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:779 +#: build/C/man2/select_tut.2:781 #, no-wrap msgid "" " r = recv(fd2, &c, 1, MSG_OOB);\n" @@ -4367,13 +4839,13 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:781 +#: build/C/man2/select_tut.2:783 #, no-wrap msgid " /* check if write data has caught read data */\n" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:786 +#: build/C/man2/select_tut.2:788 #, no-wrap msgid "" " if (buf1_written == buf1_avail)\n" @@ -4383,7 +4855,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:789 +#: build/C/man2/select_tut.2:791 #, no-wrap msgid "" " /* one side has closed the connection, keep\n" @@ -4391,7 +4863,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:797 +#: build/C/man2/select_tut.2:799 #, no-wrap msgid "" " if (fd1 E 0 && buf1_avail - buf1_written == 0)\n" @@ -4404,7 +4876,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:811 +#: build/C/man2/select_tut.2:813 msgid "" "The above program properly forwards most kinds of TCP connections including " "OOB signal data transmitted by B servers. It handles the tricky " @@ -4416,7 +4888,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/select_tut.2:817 +#: build/C/man2/select_tut.2:819 msgid "" "The program does not handle more than one simultaneous connection at a time, " "although it could easily be extended to do this with a linked list of " @@ -4427,7 +4899,7 @@ msgstr "" #. .SH AUTHORS #. This man page was written by Paul Sheer. #. type: Plain text -#: build/C/man2/select_tut.2:836 +#: build/C/man2/select_tut.2:838 msgid "" "B(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), " "B(2), B(2), B(2), B(2), B(3), " @@ -4892,7 +5364,7 @@ msgstr "" #. type: TH #: build/C/man2/sendmmsg.2:28 #, no-wrap -msgid "2012-02-27" +msgid "2012-12-16" msgstr "" #. type: Plain text @@ -5023,40 +5495,144 @@ msgid "The value specified in I is capped to B (1024)." msgstr "" #. type: Plain text -#: build/C/man2/sendmmsg.2:173 +#: build/C/man2/sendmmsg.2:177 +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 +#: build/C/man2/sendmmsg.2:186 +#, no-wrap +msgid "" +"#define _GNU_SOURCE\n" +"#include Enetinet/ip.hE\n" +"#include Estdio.hE\n" +"#include Estdlib.hE\n" +"#include Estring.hE\n" +"#include Esys/types.hE\n" +"#include Esys/socket.hE\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/sendmmsg.2:195 +#, no-wrap +msgid "" +"int\n" +"main(void)\n" +"{\n" +" int sockfd;\n" +" struct sockaddr_in sa;\n" +" struct mmsghdr msg[2];\n" +" struct iovec msg1[2], msg2;\n" +" int retval;\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/sendmmsg.2:209 +#, no-wrap +msgid "" +" sa.sin_family = AF_INET;\n" +" sa.sin_addr.s_addr = htonl(INADDR_LOOPBACK);\n" +" sa.sin_port = htons(1234);\n" +" if (connect(sockfd, (struct sockaddr *) &sa, sizeof(sa)) == -1) {\n" +" perror(\"connect()\");\n" +" exit(EXIT_FAILURE);\n" +" }\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/sendmmsg.2:215 +#, 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 +#: build/C/man2/sendmmsg.2:219 +#, no-wrap +msgid "" +" memset(&msg2, 0, sizeof(msg2));\n" +" msg2.iov_base = \"three\";\n" +" msg2.iov_len = 5;\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/sendmmsg.2:223 +#, 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 +#: build/C/man2/sendmmsg.2:226 +#, no-wrap +msgid "" +" msg[1].msg_hdr.msg_iov = &msg2;\n" +" msg[1].msg_hdr.msg_iovlen = 1;\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/sendmmsg.2:232 +#, 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 +#: build/C/man2/sendmmsg.2:235 +#, no-wrap +msgid "" +" exit(0);\n" +"}\n" +msgstr "" + +#. type: Plain text +#: build/C/man2/sendmmsg.2:241 msgid "B(2), B(2), B(2), B(7)" msgstr "" #. type: TH -#: build/C/man3/sockatmark.3:23 +#: build/C/man3/sockatmark.3:25 #, no-wrap msgid "SOCKATMARK" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:26 +#: build/C/man3/sockatmark.3:28 msgid "sockatmark - determine whether socket is at out-of-band mark" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:28 build/C/man2/socket.2:48 build/C/man7/socket.7:31 build/C/man2/socketpair.2:47 +#: build/C/man3/sockatmark.3:30 build/C/man2/socket.2:50 build/C/man7/socket.7:53 build/C/man2/socketpair.2:49 msgid "B<#include Esys/socket.hE>" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:30 +#: build/C/man3/sockatmark.3:32 msgid "BIB<);>" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:39 +#: build/C/man3/sockatmark.3:41 msgid "" "B(): _POSIX_C_SOURCE\\ E=\\ 200112L || _XOPEN_SOURCE\\ " "E=\\ 600" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:49 +#: build/C/man3/sockatmark.3:51 msgid "" "B() returns a value indicating whether or not the socket " "referred to by the file descriptor I is at the out-of-band mark. If " @@ -5065,7 +5641,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:54 +#: build/C/man3/sockatmark.3:56 msgid "" "A successful call to B() returns 1 if the socket is at the " "out-of-band mark, or 0 if it is not. On error, -1 is returned and I " @@ -5073,59 +5649,59 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:59 +#: build/C/man3/sockatmark.3:61 msgid "I is not a valid file descriptor." msgstr "" #. POSIX.1 says ENOTTY for this case #. type: Plain text -#: build/C/man3/sockatmark.3:66 +#: build/C/man3/sockatmark.3:68 msgid "I is not a file descriptor to which B() can be applied." msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:69 +#: build/C/man3/sockatmark.3:71 msgid "B() was added to glibc in version 2.2.4." msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:71 +#: build/C/man3/sockatmark.3:73 msgid "POSIX.1-2001." msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:78 +#: build/C/man3/sockatmark.3:80 msgid "" "If B() returns 1, then the out-of-band data can be read using " "the B flag of B(2)." msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:80 +#: build/C/man3/sockatmark.3:82 msgid "Out-of-band data is only supported on some stream socket protocols." msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:85 +#: build/C/man3/sockatmark.3:87 msgid "" "B() can safely be called from a handler for the B " "signal." msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:91 +#: build/C/man3/sockatmark.3:93 msgid "" "B() is implemented using the B B(2) " "operation." msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:95 +#: build/C/man3/sockatmark.3:97 msgid "Prior to glibc 2.4, B() did not work." msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:100 +#: build/C/man3/sockatmark.3:102 msgid "" "The following code can be used after receipt of a B signal to read " "(and discard) all data up to the mark, and then read the byte of data at the " @@ -5133,7 +5709,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:105 +#: build/C/man3/sockatmark.3:107 #, no-wrap msgid "" " char buf[BUF_LEN];\n" @@ -5142,7 +5718,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:112 +#: build/C/man3/sockatmark.3:114 #, no-wrap msgid "" " for (;;) {\n" @@ -5154,7 +5730,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:115 +#: build/C/man3/sockatmark.3:117 #, no-wrap msgid "" " if (atmark)\n" @@ -5162,7 +5738,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:122 +#: build/C/man3/sockatmark.3:124 #, no-wrap msgid "" " s = read(sockfd, buf, BUF_LEN) E= 0);\n" @@ -5174,7 +5750,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:129 +#: build/C/man3/sockatmark.3:131 #, no-wrap msgid "" " if (atmark == 1) {\n" @@ -5186,44 +5762,44 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man3/sockatmark.3:135 +#: build/C/man3/sockatmark.3:137 msgid "B(2), B(2), B(2), B(7)" msgstr "" #. type: TH -#: build/C/man2/socket.2:41 build/C/man7/socket.7:26 +#: build/C/man2/socket.2:43 build/C/man7/socket.7:48 #, no-wrap msgid "SOCKET" msgstr "" #. type: TH -#: build/C/man2/socket.2:41 +#: build/C/man2/socket.2:43 #, no-wrap msgid "2009-01-19" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:44 +#: build/C/man2/socket.2:46 msgid "socket - create an endpoint for communication" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:46 build/C/man2/socketpair.2:45 +#: build/C/man2/socket.2:48 build/C/man2/socketpair.2:47 msgid "B<#include Esys/types.hE> /* See NOTES */" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:50 +#: build/C/man2/socket.2:52 msgid "BIB<, int >IB<, int >IB<);>" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:53 +#: build/C/man2/socket.2:55 msgid "B() creates an endpoint for communication and returns a descriptor." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:61 +#: build/C/man2/socket.2:63 msgid "" "The I argument specifies a communication domain; this selects the " "protocol family which will be used for communication. These families are " @@ -5232,238 +5808,238 @@ msgid "" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:64 +#: build/C/man2/socket.2:66 #, no-wrap msgid "Name:Purpose:Man page\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:65 build/C/man2/socket.2:72 build/C/man2/socket.2:77 build/C/man2/socket.2:82 build/C/man2/socket.2:85 build/C/man2/socket.2:92 build/C/man2/socket.2:97 build/C/man2/socket.2:102 build/C/man2/socket.2:105 build/C/man2/socket.2:110 +#: build/C/man2/socket.2:67 build/C/man2/socket.2:74 build/C/man2/socket.2:79 build/C/man2/socket.2:84 build/C/man2/socket.2:87 build/C/man2/socket.2:94 build/C/man2/socket.2:99 build/C/man2/socket.2:104 build/C/man2/socket.2:107 build/C/man2/socket.2:112 #, no-wrap msgid "T{\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:66 +#: build/C/man2/socket.2:68 #, no-wrap msgid "B, B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:67 build/C/man2/socket.2:69 build/C/man2/socket.2:87 build/C/man2/socket.2:89 build/C/man2/socket.2:99 build/C/man2/socket.2:112 build/C/man2/socket.2:114 build/C/man7/socket.7:162 +#: build/C/man2/socket.2:69 build/C/man2/socket.2:71 build/C/man2/socket.2:89 build/C/man2/socket.2:91 build/C/man2/socket.2:101 build/C/man2/socket.2:114 build/C/man2/socket.2:116 build/C/man7/socket.7:184 #, no-wrap msgid "T}:T{\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:68 +#: build/C/man2/socket.2:70 #, no-wrap msgid "Local communication\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:70 +#: build/C/man2/socket.2:72 #, no-wrap msgid "B(7)\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:71 build/C/man2/socket.2:76 build/C/man2/socket.2:81 build/C/man2/socket.2:91 build/C/man2/socket.2:96 build/C/man2/socket.2:109 build/C/man2/socket.2:116 build/C/man7/socket.7:141 build/C/man7/socket.7:145 build/C/man7/socket.7:148 build/C/man7/socket.7:154 build/C/man7/socket.7:157 build/C/man7/socket.7:166 build/C/man7/socket.7:173 +#: build/C/man2/socket.2:73 build/C/man2/socket.2:78 build/C/man2/socket.2:83 build/C/man2/socket.2:93 build/C/man2/socket.2:98 build/C/man2/socket.2:111 build/C/man2/socket.2:118 build/C/man7/socket.7:163 build/C/man7/socket.7:167 build/C/man7/socket.7:170 build/C/man7/socket.7:176 build/C/man7/socket.7:179 build/C/man7/socket.7:188 build/C/man7/socket.7:195 #, no-wrap msgid "T}\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:73 +#: build/C/man2/socket.2:75 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:74 +#: build/C/man2/socket.2:76 #, no-wrap msgid "T}:IPv4 Internet protocols:T{\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:75 +#: build/C/man2/socket.2:77 #, no-wrap msgid "B(7)\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:78 +#: build/C/man2/socket.2:80 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:79 +#: build/C/man2/socket.2:81 #, no-wrap msgid "T}:IPv6 Internet protocols:T{\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:80 +#: build/C/man2/socket.2:82 #, no-wrap msgid "B(7)\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:83 +#: build/C/man2/socket.2:85 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:84 +#: build/C/man2/socket.2:86 #, no-wrap msgid "T}:IPX - Novell protocols:\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:86 +#: build/C/man2/socket.2:88 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:88 +#: build/C/man2/socket.2:90 #, no-wrap msgid "Kernel user interface device\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:90 +#: build/C/man2/socket.2:92 #, no-wrap msgid "B(7)\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:93 +#: build/C/man2/socket.2:95 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:94 +#: build/C/man2/socket.2:96 #, no-wrap msgid "T}:ITU-T X.25 / ISO-8208 protocol:T{\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:95 +#: build/C/man2/socket.2:97 #, no-wrap msgid "B(7)\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:98 +#: build/C/man2/socket.2:100 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:100 +#: build/C/man2/socket.2:102 #, no-wrap msgid "Amateur radio AX.25 protocol\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:101 +#: build/C/man2/socket.2:103 #, no-wrap msgid "T}:\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:103 +#: build/C/man2/socket.2:105 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:104 +#: build/C/man2/socket.2:106 #, no-wrap msgid "T}:Access to raw ATM PVCs:\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:106 +#: build/C/man2/socket.2:108 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:107 +#: build/C/man2/socket.2:109 #, no-wrap msgid "T}:Appletalk:T{\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:108 +#: build/C/man2/socket.2:110 #, no-wrap msgid "B(7)\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:111 +#: build/C/man2/socket.2:113 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:113 +#: build/C/man2/socket.2:115 #, no-wrap msgid "Low level packet interface\n" msgstr "" #. type: tbl table -#: build/C/man2/socket.2:115 +#: build/C/man2/socket.2:117 #, no-wrap msgid "B(7)\n" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:124 +#: build/C/man2/socket.2:126 msgid "" "The socket has the indicated I, which specifies the communication " "semantics. Currently defined types are:" msgstr "" #. type: TP -#: build/C/man2/socket.2:124 +#: build/C/man2/socket.2:126 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:128 +#: build/C/man2/socket.2:130 msgid "" "Provides sequenced, reliable, two-way, connection-based byte streams. An " "out-of-band data transmission mechanism may be supported." msgstr "" #. type: TP -#: build/C/man2/socket.2:128 +#: build/C/man2/socket.2:130 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:132 +#: build/C/man2/socket.2:134 msgid "" "Supports datagrams (connectionless, unreliable messages of a fixed maximum " "length)." msgstr "" #. type: TP -#: build/C/man2/socket.2:132 +#: build/C/man2/socket.2:134 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:137 +#: build/C/man2/socket.2:139 msgid "" "Provides a sequenced, reliable, two-way connection-based data transmission " "path for datagrams of fixed maximum length; a consumer is required to read " @@ -5471,47 +6047,47 @@ msgid "" msgstr "" #. type: TP -#: build/C/man2/socket.2:137 +#: build/C/man2/socket.2:139 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:140 +#: build/C/man2/socket.2:142 msgid "Provides raw network protocol access." msgstr "" #. type: TP -#: build/C/man2/socket.2:140 +#: build/C/man2/socket.2:142 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:143 +#: build/C/man2/socket.2:145 msgid "Provides a reliable datagram layer that does not guarantee ordering." msgstr "" #. type: TP -#: build/C/man2/socket.2:143 +#: build/C/man2/socket.2:145 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:148 +#: build/C/man2/socket.2:150 msgid "Obsolete and should not be used in new programs; see B(7)." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:154 +#: build/C/man2/socket.2:156 msgid "" "Some socket types may not be implemented by all protocol families; for " "example, B is not implemented for B." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:162 +#: build/C/man2/socket.2:164 msgid "" "Since Linux 2.6.27, the I argument serves a second purpose: in " "addition to specifying a socket type, it may include the bitwise OR of any " @@ -5519,7 +6095,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:196 +#: build/C/man2/socket.2:198 msgid "" "The I specifies a particular protocol to be used with the socket. " "Normally only a single protocol exists to support a particular socket type " @@ -5532,7 +6108,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:226 +#: build/C/man2/socket.2:228 msgid "" "Sockets of type B are full-duplex byte streams, similar to " "pipes. They do not preserve record boundaries. A stream socket must be in " @@ -5546,7 +6122,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:252 +#: build/C/man2/socket.2:254 msgid "" "The communications protocols which implement a B ensure that " "data is not lost or duplicated. If a piece of data for which the peer " @@ -5564,7 +6140,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:262 +#: build/C/man2/socket.2:264 msgid "" "B and B sockets allow sending of datagrams to " "correspondents named in B(2) calls. Datagrams are generally " @@ -5573,14 +6149,14 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:269 +#: build/C/man2/socket.2:271 msgid "" "B is an obsolete socket type to receive raw packets directly " "from the device driver. Use B(7) instead." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:292 +#: build/C/man2/socket.2:294 msgid "" "An B(2) B operation can be used to specify a process or " "process group to receive a B signal when the out-of-band data " @@ -5592,7 +6168,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:302 +#: build/C/man2/socket.2:304 msgid "" "When the network signals an error condition to the protocol module (e.g., " "using a ICMP message for IP) the pending error flag is set for the socket. " @@ -5603,7 +6179,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:312 +#: build/C/man2/socket.2:314 msgid "" "The operation of sockets is controlled by socket level I. These " "options are defined in Isys/socket.hE>. The functions " @@ -5612,83 +6188,83 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:317 +#: build/C/man2/socket.2:319 msgid "" "On success, a file descriptor for the new socket is returned. On error, -1 " "is returned, and I is set appropriately." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:322 +#: build/C/man2/socket.2:324 msgid "" "Permission to create a socket of the specified type and/or protocol is " "denied." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:325 +#: build/C/man2/socket.2:327 msgid "The implementation does not support the specified address family." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:328 +#: build/C/man2/socket.2:330 msgid "Unknown protocol, or protocol family not available." msgstr "" #. Since Linux 2.6.27 #. type: Plain text -#: build/C/man2/socket.2:333 +#: build/C/man2/socket.2:335 msgid "Invalid flags in I." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:336 +#: build/C/man2/socket.2:338 msgid "Process file table overflow." msgstr "" #. type: TP -#: build/C/man2/socket.2:339 +#: build/C/man2/socket.2:341 #, no-wrap msgid "B or B" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:344 +#: build/C/man2/socket.2:346 msgid "" "Insufficient memory is available. The socket cannot be created until " "sufficient resources are freed." msgstr "" #. type: TP -#: build/C/man2/socket.2:344 build/C/man2/socketpair.2:90 +#: build/C/man2/socket.2:346 build/C/man2/socketpair.2:92 #, no-wrap msgid "B" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:348 +#: build/C/man2/socket.2:350 msgid "" "The protocol type or the specified protocol is not supported within this " "domain." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:350 +#: build/C/man2/socket.2:352 msgid "Other errors may be generated by the underlying protocol modules." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:352 +#: build/C/man2/socket.2:354 msgid "4.4BSD, POSIX.1-2001." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:358 +#: build/C/man2/socket.2:360 msgid "The B and B flags are Linux-specific." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:364 +#: build/C/man2/socket.2:366 msgid "" "B() appeared in 4.2BSD. It is generally portable to/from non-BSD " "systems supporting clones of the BSD socket layer (including System V " @@ -5696,22 +6272,22 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:382 +#: build/C/man2/socket.2:385 msgid "" "The manifest constants used under 4.x BSD for protocol families are " -"B, B, etc., while B etc. are used for address " -"families. However, already the BSD man page promises: \"The protocol family " -"generally is the same as the address family\", and subsequent standards use " -"AF_* everywhere." +"B, B, and so on, while B, B, and so on " +"are used for address families. However, already the BSD man page promises: " +"\"The protocol family generally is the same as the address family\", and " +"subsequent standards use AF_* everywhere." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:387 +#: build/C/man2/socket.2:390 msgid "An example of the use of B() is shown in B(3)." msgstr "" #. type: Plain text -#: build/C/man2/socket.2:410 +#: build/C/man2/socket.2:413 msgid "" "B(2), B(2), B(2), B(2), B(2), " "B(2), B(2), B(2), B(2), B(2), " @@ -5721,33 +6297,33 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man2/socket.2:414 +#: build/C/man2/socket.2:419 msgid "" -"\\(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\\(rq is " -"reprinted in I" +"\\(lqAn Introductory 4.3BSD Interprocess Communication Tutorial\\(rq and " +"\\(lqBSD Interprocess Communication Tutorial\\(rq, reprinted in I" msgstr "" -#. type: Plain text -#: build/C/man2/socket.2:418 -msgid "" -"\\(lqBSD Interprocess Communication Tutorial\\(rq is reprinted in I" +#. type: TH +#: build/C/man7/socket.7:48 +#, no-wrap +msgid "2013-03-15" msgstr "" #. type: Plain text -#: build/C/man7/socket.7:29 +#: build/C/man7/socket.7:51 msgid "socket - Linux socket interface" msgstr "" #. type: Plain text -#: build/C/man7/socket.7:33 +#: build/C/man7/socket.7:55 msgid "" "IB< = socket(int >IB<, int >IB<, int " ">IB<);>" msgstr "" #. type: Plain text -#: build/C/man7/socket.7:52 +#: build/C/man7/socket.7:74 msgid "" "This manual page describes the Linux networking socket layer user " "interface. The BSD compatible sockets are the uniform interface between the " @@ -5758,13 +6334,13 @@ msgid "" msgstr "" #. type: SS -#: build/C/man7/socket.7:52 +#: build/C/man7/socket.7:74 #, no-wrap -msgid "Socket Layer Functions" +msgid "Socket-layer functions" msgstr "" #. type: Plain text -#: build/C/man7/socket.7:56 +#: build/C/man7/socket.7:78 msgid "" "These functions are used by the user process to send or receive packets and " "to do other socket operations. For more information see their respective " @@ -5772,7 +6348,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man7/socket.7:72 +#: build/C/man7/socket.7:94 msgid "" "B(2) creates a socket, B(2) connects a socket to a remote " "socket address, the B(2) function binds a socket to a local socket " @@ -5783,7 +6359,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man7/socket.7:94 +#: build/C/man7/socket.7:116 msgid "" "B(2), B(2), and B(2) send data over a socket, and " "B(2), B(2), B(2) receive data from a socket. " @@ -5794,7 +6370,7 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man7/socket.7:105 +#: build/C/man7/socket.7:127 msgid "" "B(2) returns the local socket address and B(2) " "returns the remote socket address. B(2) and B(2) " @@ -5803,21 +6379,21 @@ msgid "" msgstr "" #. type: Plain text -#: build/C/man7/socket.7:110 +#: build/C/man7/socket.7:132 msgid "" "B(2) is used to close a socket. B(2) closes parts of a " "full-duplex socket connection." msgstr "" #. type: Plain text -#: build/C/man7/socket.7:116 +#: build/C/man7/socket.7:138 msgid "" "Seeking, or calling B(2) or B(2) with a nonzero position is " "not supported on sockets." msgstr "" #. type: Plain text -#: build/C/man7/socket.7:133 +#: build/C/man7/socket.7:155 msgid "" "It is possible to do nonblocking I/O on sockets by setting the B " "flag on a socket file descriptor using B(2). Then all operations " @@ -5827,169 +6403,169 @@ msgid "" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:137 +#: build/C/man7/socket.7:159 #, no-wrap msgid "I/O events\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:138 +#: build/C/man7/socket.7:160 #, no-wrap msgid "Event:Poll flag:Occurrence\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:139 build/C/man7/socket.7:142 +#: build/C/man7/socket.7:161 build/C/man7/socket.7:164 #, no-wrap msgid "Read:POLLIN:T{\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:140 +#: build/C/man7/socket.7:162 #, no-wrap msgid "New data arrived.\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:143 +#: build/C/man7/socket.7:165 #, no-wrap msgid "A connection setup has been completed\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:144 +#: build/C/man7/socket.7:166 #, no-wrap msgid "(for connection-oriented sockets)\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:146 build/C/man7/socket.7:149 +#: build/C/man7/socket.7:168 build/C/man7/socket.7:171 #, no-wrap msgid "Read:POLLHUP:T{\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:147 +#: build/C/man7/socket.7:169 #, no-wrap msgid "A disconnection request has been initiated by the other end.\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:150 +#: build/C/man7/socket.7:172 #, no-wrap msgid "A connection is broken (only for connection-oriented protocols).\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:151 +#: build/C/man7/socket.7:173 #, no-wrap msgid "When the socket is written\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:152 +#: build/C/man7/socket.7:174 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:153 +#: build/C/man7/socket.7:175 #, no-wrap msgid "is also sent.\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:155 +#: build/C/man7/socket.7:177 #, no-wrap msgid "Write:POLLOUT:T{\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:156 +#: build/C/man7/socket.7:178 #, no-wrap msgid "Socket has enough send buffer space for writing new data.\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:158 +#: build/C/man7/socket.7:180 #, no-wrap msgid "Read/Write:T{\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:159 +#: build/C/man7/socket.7:181 #, no-wrap msgid "POLLIN|\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:160 +#: build/C/man7/socket.7:182 #, no-wrap msgid ".br\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:161 +#: build/C/man7/socket.7:183 #, no-wrap msgid "POLLOUT\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:163 +#: build/C/man7/socket.7:185 #, no-wrap msgid "An outgoing\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:164 +#: build/C/man7/socket.7:186 #, no-wrap msgid "B(2)\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:165 +#: build/C/man7/socket.7:187 #, no-wrap msgid "finished.\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:167 +#: build/C/man7/socket.7:189 #, no-wrap msgid "Read/Write:POLLERR:An asynchronous error occurred.\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:168 +#: build/C/man7/socket.7:190 #, no-wrap msgid "Read/Write:POLLHUP:The other end has shut down one direction.\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:169 +#: build/C/man7/socket.7:191 #, no-wrap msgid "Exception:POLLPRI:T{\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:170 +#: build/C/man7/socket.7:192 #, no-wrap msgid "Urgent data arrived.\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:171 +#: build/C/man7/socket.7:193 #, no-wrap msgid "B\n" msgstr "" #. type: tbl table -#: build/C/man7/socket.7:172 +#: build/C/man7/socket.7:194 #, no-wrap msgid "is sent then.\n" msgstr "" #. type: Plain text -#: build/C/man7/socket.7:202 +#: build/C/man7/socket.7:223 msgid "" "An alternative to B(2) and B(2), B(2), " -"B(2), etc." +"I set to B or B, or B (for " +"B(2)) just as if the socket was specified to be nonblocking. If " +"the timeout is set to zero (the default) then the operation will never " +"timeout. Timeouts only have effect for system calls that perform socket I/O " +"(e.g., B(2), B(2), B(2), B(2)); timeouts have " +"no effect for B