SEND(2)             Linux Programmer's Manual             SEND(2)


NAME
       send, sendto, sendmsg - send a message from a socket

SYNOPSIS
       #include (lt)sys/types.h(gt)
       #include (lt)sys/socket.h(gt)


       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);

DESCRIPTION
       WARNING: This is a BSD man page.   As  of  Linux  0.99.11,
       sendmsg was not implemented.

       Send,  sendto,  and sendmsg are used to transmit a message
       to another socket.  Send may be used only when the  socket
       is  in  a connected state, while sendto and sendmsg may be
       used at any time.

       The address of the target is given by to with tolen speci-
       fying  its  size.   The  length of the message is given by
       len.  If the  message  is  too  long  to  pass  atomically
       through  the  underlying  protocol,  the error EMSGSIZE is
       returned, and the message is not transmitted.

       No indication of failure to deliver is implicit in a send.
       Locally detected errors are indicated by a return value of
       -1.

       If no messages space is available at the  socket  to  hold
       the  message to be transmitted, then send normally blocks,
       unless the socket has  been  placed  in  non-blocking  I/O
       mode.  The select(2) call may be used to determine when it
       is possible to send more data.

       The flags parameter may include one or more of the follow-
       ing:

              #define   MSG_OOB        0x1  /* process out-of-band data */
              #define   MSG_DONTROUTE  0x4  /* bypass routing, use direct interface */

       The flag MSG_OOB is used to send out-of-band data on sock-
       ets that support  this  notion  (e.g.   SOCK_STREAM);  the
       underlying  protocol  must  also support out-of-band data.
       MSG_DONTROUTE is usually used only by diagnostic or  rout-
       ing programs.




BSD Man Page               24 July 1993                         1





SEND(2)             Linux Programmer's Manual             SEND(2)


       See recv(2) for a description of the msghdr structure.

RETURN VALUES
       The  call  returns the number of characters sent, or -1 if
       an error occurred.

ERRORS
       EBADF   An invalid descriptor was specified.

       ENOTSOCK
               The argument s is not a socket.

       EFAULT  An invalid user space address was specified for  a
               parameter.

       EMSGSIZE
               The  socket  requires  that message be sent atomi-
               cally, and the size of the message to be sent made
               this impossible.

       EWOULDBLOCK
               The   socket   is   marked  non-blocking  and  the
               requested operation would block.

       ENOBUFS The system was  unable  to  allocate  an  internal
               buffer.   The  operation  may succeed when buffers
               become available.

       ENOBUFS The output queue for a network interface was full.
               This  generally  indicates  that the interface has
               stopped sending, but may be  caused  by  transient
               congestion.

CONFORMING TO
       4.4BSD,  SVr4  (these  function calls appeared in 4.2BSD).
       The SVr4 versions  docoment  additional  error  conditions
       EINVAL, EINTR, EMSGSIZE, ENOSR, ENOMEM.

SEE ALSO
       fcntl(2),  recv(2),  select(2),  getsockopt(2), socket(2),
       write(2)
















BSD Man Page               24 July 1993                         2



Please look at the man2html translation issues.
man2html.pl Version 1.1, Copyright 1997, 1998 by Richard Dawe