Provided by:
manpages-cs_0.18.20090209-1_all 
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/