Rechercher une page de manuel
send
Langue: ru
Version: éÀÌØ 1999 (openSuse - 09/10/07)
Section: 2 (Appels système)
Sommaire
îáú÷áîéå
send, sendto, sendmsg - ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ × ÓÏËÅÔëòáôëáñ ó÷ïäëá
#include <sys/types.h>#include <sys/socket.h>
int send(int s, const void *msg, size_t len, int flags);
int sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
int sendmsg(int s, const struct msghdr *msg, int flags);
ïðéóáîéå
send, sendto, É sendmsg ÉÓÐÏÌØÚÕÀÔÓÑ ÄÌÑ ÐÅÒÅÓÙÌËÉ ÓÏÏÂÝÅÎÉÊ ÎÁ ÄÒÕÇÏÊ ÓÏËÅÔ. send ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ, ÔÏÌØËÏ ÅÓÌÉ ÓÏËÅÔ ÎÁÈÏÄÉÔÓÑ × ÓÏÅÄÉÎÅÎÎÏÍ ÓÏÓÔÏÑÎÉÉ, ÔÏÇÄÁ ËÁË sendto É sendmsg ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ × ÌÀÂÏÅ ×ÒÅÍÑ.áÄÒÅÓ ÐÏÌÕÞÁÔÅÌÑ ÚÁÄÁÅÔÓÑ × ÐÁÒÁÍÅÔÒÅ to ÄÌÉÎÙ tolen. äÌÉÎÁ ÓÏÏÂÝÅÎÉÑ ÚÁÄÁÅÔÓÑ × ÐÁÒÁÍÅÔÒÅ len. åÓÌÉ ÓÏÏÂÝÅÎÉÅ ÓÌÉÛËÏÍ ÄÌÉÎÎÏÅ, ÞÔÏÂÙ ÎÉÖÅÌÅÖÁÝÉÊ ÐÒÏÔÏËÏÌ ÓÍÏÇ ÁÔÏÍÁÒÎÏ ÏÔÏÓÌÁÔØ ÅÇÏ, ×ÏÚ×ÒÁÝÁÅÔÓÑ ËÏÄ ÏÛÉÂËÉ EMSGSIZE, Á ÓÏÏÂÝÅÎÉÅ ÎÅ ÏÔÓÙÌÁÅÔÓÑ.
No indication of failure to deliver is implicit in a send. ìÏËÁÌØÎÙÅ ÏÛÉÂËÉ ÏÂÏÚÎÁÞÁÀÔÓÑ Ó ÐÏÍÏÝØÀ ×ÏÚ×ÒÁÝÁÅÍÏÇÏ ÚÎÁÞÅÎÉÑ -1.
ëÏÇÄÁ ÓÏÏÂÝÅÎÉÅ ÎÅ ÐÏÍÅÝÁÅÔÓÑ × ÂÕÆÅÒ ÏÔÐÒÁ×ËÉ ÓÏËÅÔÁ, send ÏÂÙÞÎÏ ÄÏÖÉÄÁÅÔÓÑ ÚÁ×ÅÒÛÅÎÉÑ ÏÔÐÒÁ×ËÉ, ÅÓÌÉ ÔÏÌØËÏ ÓÏËÅÔ ÎÅ ÎÁÈÏÄÉÔÓÑ × ÎÅÂÌÏËÉÒÕÀÝÅÍ ÒÅÖÉÍÅ. åÓÌÉ ÔÁË, ÔÏ ×ÏÚ×ÒÁÝÁÅÔÓÑ EAGAIN. óÉÓÔÅÍÎÙÊ ×ÙÚÏ× select(2) ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ×ÙÑÓÎÅÎÉÑ ×ÏÚÍÏÖÎÏÓÔÉ ÏÔÐÒÁ×ËÉ ÄÁÎÎÙÈ.
ðÁÒÁÍÅÔÒ flags Ñ×ÌÑÅÔÓÑ ÂÉÔÏ×ÏÊ ÍÁÓËÏÊ É ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÔÁËÉÅ ÆÌÁÇÉ:
- MSG_OOB
- ðÏÓÙÌÁÅÔ ×ÎÅÐÏÔÏËÏ×ÙÅ ÄÁÎÎÙÅ, ÅÓÌÉ ÓÏËÅÔ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÔÁËÏÅ (ÎÁÐÒÉÍÅÒ, ÓÏËÅÔÙ ÔÉÐÁ SOCK_STREAM); ÎÉÖÅÌÅÖÁÝÉÊ ÐÒÏÔÏËÏÌ ÔÁËÖÅ ÄÏÌÖÅÎ ÐÏÄÄÅÒÖÉ×ÁÔØ ×ÎÅÐÏÔÏËÏ×ÙÅ ÄÁÎÎÙÅ.
- MSG_DONTROUTE
- îÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÁÒÛÒÕÔÉÚÁÃÉÀ ÐÒÉ ÏÔÐÒÁ×ËÅ ÐÁËÅÔÁ, Á ÐÏÓÙÌÁÔØ ÅÇÏ ÔÏÌØËÏ ÎÁ ÈÏÓÔÙ × ÌÏËÁÌØÎÏÊ ÓÅÔÉ. ïÂÙÞÎÏ ÜÔÏ ÉÓÐÏÌØÚÕÅÔÓÑ × ÄÉÁÇÎÏÓÔÉÞÅÓËÉÈ ÐÒÏÇÒÁÍÍÁÈ É ÐÒÏÇÒÁÍÍÁÈ ÍÁÒÛÒÕÔÉÚÁÃÉÉ. üÔÏÔ ÆÌÁÇ ÏÐÒÅÄÅÌÅÎ ÔÏÌØËÏ ÄÌÑ ÍÁÒÛÒÕÔÉÚÉÒÕÅÍÙÈ ÓÅÍÅÊÓÔ× ÐÒÏÔÏËÏÌÏ×; ÐÁËÅÔÎÙÅ ÓÏËÅÔÙ ÎÅ ÉÓÐÏÌØÚÕÀÔ ÍÁÒÛÒÕÔÉÚÁÃÉÀ.
- MSG_DONTWAIT
- ÷ËÌÀÞÁÅÔ ÎÅÂÌÏËÉÒÕÀÝÉÊ ÒÅÖÉÍ; ÅÓÌÉ ÂÙ ÏÐÅÒÁÃÉÑ ÄÏÌÖÎÁ ÂÙÌÁ ÚÁÂÌÏËÉÒÏ×ÁÔØ ÐÒÏÇÒÁÍÍÕ, ×ÏÚ×ÒÁÝÁÅÔÓÑ EAGAIN (ÜÔÏÔ ÒÅÖÉÍ ÔÁËÖÅ ÍÏÖÎÏ ×ËÌÀÞÉÔØ Ó ÐÏÍÏÝØÀ ÏÐÃÉÉ O_NONBLOCK É ËÏÍÁÎÄÙ F_SETFL × ÆÕÎËÃÉÉ fcntl(2)).
- MSG_NOSIGNAL
- ôÒÅÂÕÅÔ ÎÅ ÐÏÓÙÌÁÔØ ÓÉÇÎÁÌ SIGPIPE ËÏÇÄÁ ÐÒÉ ÒÁÂÏÔÅ Ó ÐÏÔÏËÏ-ÏÒÉÅÎÔÉÒÏ×ÁÎÎÙÍ ÓÏËÅÔÏÍ ÄÒÕÇÁÑ ÓÔÏÒÏÎÁ ÏÂÒÙ×ÁÅÔ ÓÏÅÄÉÎÅÎÉÅ. ëÏÄ ÏÛÉÂËÉ EPIPE ×ÏÚ×ÒÁÝÁÅÔÓÑ × ÌÀÂÏÍ ÓÌÕÞÁÅ.
- MSG_CONFIRM(ÔÏÌØËÏ Linux 2.3 É ×ÙÛÅ)
- óÏÏÂÝÉÔØ ÕÒÏ×ÎÀ ÓÏÅÄÉÎÅÎÉÑ, ÞÔÏ ×Ù ÕÓÐÅÛÎÏ ÐÏÌÕÞÉÌÉ ÏÔ×ÅÔ ÏÔ ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ. õÒÏ×ÅÎØ ÓÏÅÄÉÎÅÎÉÑ ÒÅÇÕÌÑÒÎÏ ÐÙÔÁÅÔÓÑ ÏÂÒÁÔÉÔØÓÑ Ë ÓÏÓÅÄÕ (ÎÁÐÒÉÍÅÒ, Ó ÐÏÍÏÝØÀ unicast ARP), ÄÏ ÔÅÈ ÐÏÒ ÐÏËÁ ÎÅ ÐÏÌÕÞÉÔ ÔÁËÏÅ ÓÏÏÂÝÅÎÉÅ. üÔÕ ×ÏÚÍÏÖÎÏÓÔØ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÏÌØËÏ ÎÁ ÓÏËÅÔÁÈ ÔÉÐÁ SOCK_DGRAM É SOCK_RAW. ÷ ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ ÜÔÁ ×ÏÚÍÏÖÎÏÓÔØ ÒÅÁÌÉÚÏ×ÁÎÁ ÔÏÌØËÏ ÄÌÑ IPv4 É IPv6. óÍ. arp(7), ÇÄÅ ÏÐÉÓÁÎÙ ÄÅÔÁÌÉ.
ïÐÒÅÄÅÌÅÎÉÅ ÓÔÒÕËÔÕÒÙ msghdr ÉÚÌÏÖÅÎÏ ÎÉÖÅ. óÍ. ÎÉÖÅ, Á ÔÁËÖÅ × recv(2), ÇÄÅ ÏÐÉÓÁÎÏ ËÁÖÄÏÅ ÐÏÌÅ.
-
-
struct msghdr { void * msg_name; /* ÎÅÏÂÑÚÁÔÅÌØÎÙÊ ÁÄÒÅÓ */ socklen_t msg_namelen; /* ÒÁÚÍÅÒ ÁÄÒÅÓÁ */ struct iovec * msg_iov; /* ÍÁÓÓÉ× scatter/gather */ size_t msg_iovlen; /* # ÜÌÅÍÅÎÔÙ × msg_iov */ void * msg_control; /* ÓÌÕÖÅÂÎÙÅ ÄÁÎÎÙÅ, ÓÍ. ÎÉÖÅ */ socklen_t msg_controllen; /* ÒÁÚÍÅÒ ÂÕÆÅÒÁ ÓÌÕÖÅÂÎÙÈ ÄÁÎÎÙÈ */ int msg_flags; /* ÆÌÁÇÉ ÎÁ ÐÒÉÎÑÔÏÍ ÓÏÏÂÝÅÎÉÉ */ };
-
õÐÒÁ×ÌÑÀÝÕÀ ÉÎÆÏÒÍÁÃÉÀ ÍÏÖÎÏ ÐÏÓÙÌÁÔØ Ó ÐÏÍÏÝØÀ ÞÌÅÎÏ× msg_control É msg_controllen. íÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÕÐÒÁ×ÌÑÀÝÅÇÏ ÂÕÆÅÒÁ, ËÏÔÏÒÕÀ ÐÏÄÄÅÒÖÉ×ÁÅÔ ÑÄÒÏ, ÏÇÒÁÎÉÞÅÎÁ sysctl-ÚÎÁÞÅÎÉÅÍ net.core.optmem_max; ÓÍ. socket(7).
÷ïú÷òáýáåíïå úîáþåîéå
üÔÉ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù ×ÏÚ×ÒÁÝÁÀÔ ËÏÌÉÞÅÓÔ×Ï ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÉÍ×ÏÌÏ× ÉÌÉ -1, ÅÓÌÉ ÐÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ.ïûéâëé
åÓÔØ ÎÅÓËÏÌØËÏ ÓÔÁÎÄÁÒÔÎÙÈ ÏÛÉÂÏË, ÇÅÎÅÒÉÒÕÅÍÙÈ ÎÁ ÕÒÏ×ÎÅ ÓÏËÅÔÏ×. îÉÖÅÌÅÖÁÝÉÅ ÍÏÄÕÌÉ ÐÒÏÔÏËÏÌÏ× ÍÏÇÕÔ ÔÁËÖÅ ×ÏÚ×ÒÁÝÁÔØ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ËÏÄÙ ÏÛÉÂÏË; ÓÍÏÔÒÉ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ ÓÔÒÁÎÉÃÙ ÒÕËÏ×ÏÄÓÔ×Á.- EBADF
- õËÁÚÁÎ ÎÅ×ÅÒÎÙÊ ÄÅÓËÒÉÐÔÏÒ.
- ENOTSOCK
- áÒÇÕÍÅÎÔ s ÎÅ Ñ×ÌÑÅÔÓÑ ÓÏËÅÔÏÍ.
- EFAULT
- ÷ ËÁÞÅÓÔ×Å ÐÁÒÁÍÅÔÒÁ ÐÅÒÅÄÁÎ ÎÅ×ÅÒÎÙÊ ÁÄÒÅÓ.
- EMSGSIZE
- óÏËÅÔ ÔÒÅÂÕÅÔ, ÞÔÏÂÙ ÓÏÏÂÝÅÎÉÅ ÂÙÌÏ ÏÔÏÓÌÁÎÏ ÚÁ ÏÄÎÕ ÏÐÅÒÁÃÉÀ (ÁÔÏÍÁÒÎÏ), Á ÒÁÚÍÅÒ ÓÏÏÂÝÅÎÉÑ ÎÅ ÐÏÚ×ÏÌÑÅÔ ÜÔÏÇÏ.
- EAGAIN ÉÌÉ EWOULDBLOCK
- óÏËÅÔ ÐÏÍÅÞÅÎ ËÁË ÎÅÂÌÏËÉÒÕÀÝÉÊ, Á ÚÁÐÒÏÛÅÎÎÁÑ ÏÐÅÒÁÃÉÑ ÄÏÌÖÎÁ ÂÙÌÁ ÂÙ ÚÁÂÌÏËÉÒÏ×ÁÔØ ÅÇÏ.
- ENOBUFS
- éÓÈÏÄÑÝÁÑ ÏÞÅÒÅÄØ ÓÅÔÅ×ÏÇÏ ÉÎÔÅÒÆÅÊÓÁ ÚÁÐÏÌÎÅÎÁ. ïÂÙÞÎÏ ÜÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÉÎÔÅÒÆÅÊÓ ÐÒÅËÒÁÔÉÌ ÏÔÐÒÁ×ËÕ, ÎÏ ÍÏÖÅÔ ÂÙÔØ ÔÁËÖÅ ×ÙÚ×ÁÎÏ ×ÒÅÍÅÎÎÏÊ ÐÅÒÅÇÒÕÚËÏÊ. (üÔÏÇÏ ÎÅ ÍÏÖÅÔ ÐÒÏÉÚÏÊÔÉ ÐÏÄ Linux, ÐÏÔÏÍÕ ÞÔÏ ÚÄÅÓØ ÐÁËÅÔÙ ÐÒÏÓÔÏ ÏÔÂÒÁÓÙ×ÁÀÔÓÑ, ËÏÇÄÁ ÏÞÅÒÅÄØ ÕÓÔÒÏÊÓÔ×Á ÐÅÒÅÐÏÌÎÑÅÔÓÑ.)
- EINTR
- ðÏÑ×ÉÌÓÑ ÓÉÇÎÁÌ.
- ENOMEM
- îÅ È×ÁÔÉÌÏ ÐÁÍÑÔÉ.
- EINVAL
- ðÅÒÅÄÁÎ ÎÅ×ÅÒÎÙÊ ÁÒÇÕÍÅÎÔ.
- EPIPE
- ìÏËÁÌØÎÙÊ ËÏÎÅà ÓÏËÅÔÁ, ÏÒÉÅÎÔÉÒÏ×ÁÎÎÏÇÏ ÎÁ ÓÏÅÄÉÎÅÎÉÅ, ÂÙÌ ÚÁËÒÙÔ. ÷ ÜÔÏÍ ÓÌÕÞÁÅ ÐÒÏÃÅÓÓ ÔÁËÖÅ ÐÏÌÕÞÉÔ ÓÉÇÎÁÌ SIGPIPE, ÅÓÌÉ ÔÏÌØËÏ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ ÆÌÁÇ MSG_NOSIGNAL.
óïïô÷åôóô÷éå óôáîäáòôáí
4.4BSD, SVr4, POSIX 1003.1g draft (ÜÔÉ ÓÉÓÔÅÍÎÙÅ ×ÙÚÏ×Ù ÐÏÑ×ÉÌÉÓØ × 4.2BSD).MSG_CONFIRM Ñ×ÌÑÅÔÓÑ Linux-ÓÐÅÃÉÆÉÞÎÙÍ ÒÁÓÛÉÒÅÎÉÅÍ.
úáíåþáîéå
÷ÙÛÅÐÒÉ×ÅÄÅÎÎÙÅ ÐÒÏÔÏÔÉÐÙ ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ glibc2. óÔÁÎÄÁÒÔ SUS ÓÏÇÌÁÓÅÎ Ó ÎÉÍÉ, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÔÏÇÏ, ÞÔÏ ÔÁÍ ×ÏÚ×ÒÁÝÁÅÍÙÅ ÚÎÁÞÅÎÉÑ ÏÐÒÅÄÅÌÅÎÙ ËÁË ssize_t (ÔÏÇÄÁ ËÁË × BSD 4.x, libc4 É libc5 ÏÎÉ ÏÐÒÅÄÅÌÅÎÙ ËÁË int). áÒÇÕÍÅÎÔ flags Ñ×ÌÑÅÔÓÑ int × BSD 4.x, ÎÏ unsigned int × libc4 É libc5. áÒÇÕÍÅÎÔ len Ñ×ÌÑÅÔÓÑ int × BSD 4.x, ÎÏ size_t × libc4 É libc5. áÒÇÕÍÅÎÔ fromlen Ñ×ÌÑÅÔÓÑ int * × BSD 4.x, libc4 É libc5. ôÅËÕÝÅÅ ÏÐÒÅÄÅÌÅÎÉÅ, socklen_t, ÂÙÌÏ ÉÚÏÂÒÅÔÅÎÏ × POSIX (ÓÍ. ÔÁËÖÅ accept(2)).óíïôòé ôáëöå
fcntl(2), recv(2), select(2), getsockopt(2), sendfile(2), socket(2), write(2), socket(7), ip(7), tcp(7), udp(7)ðåòå÷ïä
Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 2000-2001Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre