send

SEND(2)                   Linux - příručka programátora                  SEND(2)



JMÉNO
       send, sendto, sendmsg - pošli zprávu do soketu

SYNTAXE
       #include <sys/types.h>
       #include <sys/socket.h>


       int send(int s, const void *msg, int len, unsigned int flags);

       int sendto(int s, const void *msg, int len, unsigned int flags, const
       struct sockaddr *to, int tolen);

       int sendmsg(int s, const struct msghdr *msg, unsigned int flags);

POPIS
       Send, sendto, a sendmsg se používají k zasílání zpráv do jiných soketů.
       Send může být použito pouze, je-li soket spojený zatímco sendto a sendmsg
       mohou být použity kdykoliv.

       Adresa cílového soketu je zadána parametrem to a tolen specifikuje jeho
       velikost. Adresa zprávy je zadána v argumentu len.  Je-li zpráva příliš
       dlouhá, aby mola být poslána atomicky, je vrácena chyba EMSGSIZE a zpráva
       není poslána.

       Funkce send neposkytuje žádnou možnost indikace správného doručení.
       Lokálně detekované chyby jsou indikovány návratovou hodnotou -1.

       Pokud není k dispozici žádné volné místo pro zprávu před jejím přenosem,
       send se normálně zablokuje, pokud soket není v neblokujícím módu.  Volání
       select(2) může být použito k zjištění, je-li možno poslat další data.

       Parametr flags může obsahovat jednu nebo více z následujících hodnot:

              #define   MSG_OOB        0x1  /* zpracuj out-of-band data */
              #define   MSG_DONTROUTE  0x4  /* obejdi routing, použij přímé rozhraní*/

       Flag MSG_OOB je použit pro posílání out-of-band dat do soketu, který to
       podporuje (např.  SOCK_STREAM); použitý protokol musí také podporovat
       out-of-band data.  MSG_DONTROUTE je normálně používáno pouze
       diagnostickými a routovacími programy.

       V recv(2) je obsažen popis struktury msghdr

NÁVRATOVÁ HODNOTA
       Volání vrací počet poslaných znaků, nebo -1 pokud se objevila chyba.

CHYBY
       EBADF   Byl specifikován neplatný deskriptor.

       ENOTSOCK
               Argument s není soket

       EFAULT  Parametr je v neplatné části adresového prostoru procesu.

       EMSGSIZE
               Soket požaduje, aby tato zpráva byla poslána atomicky, ale
               velikost této zprávy toto znemožňuje.

       EWOULDBLOCK
               Soket je označen jako neblokující a požadovaná operace by
               blokovala.

       ENOBUFS Systém není schopen alokovat interní buffery. Operace může být
               úspěšná až budou buffery k dispozici.

       ENOBUFS Výstupní fronta pro síťové rozhraní je zaplněna. To obvykle
               znamená, že rozhraní přestalo posílat, ale může to být také
               způsobeno občasným přetížením rozhraní.

SPLŇUJE STANDARDY
       4.4BSD, SVr4 (tato volání se poprvé objevila ve 4.2BSD).  SVr4
       dokumentuje další chyby EINVAL, EINTR, EMSGSIZE, ENOSR, ENOMEM.

DALŠÍ INFORMACE
       fcntl(2), recv(2), select(2), getsockopt(2), socket(2), write(2)

VAROVÁNÍ
       Překlad je pravděpodobně zastaralý. Pokud chcete pomoci s jeho
       aktualizací, zamiřte na http://man-pages-cs-wiki.homelinux.net/



BSD Man Page                    2. července 1997                         SEND(2)