IceWalkers.com - Linux Software downloads and news
Name : Password :
Linux SoftwareLinux RPMLinux HowtosLink UsAboutAdvertise

sendmsg (2)

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



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

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

       ssize_tsend(int s,constvoid*msg,size_t len,int flags);
       ssize_tsendto(int  s,constvoid*msg,size_t len,int flags,const
       structsockaddr*to,socklen_t tolen);
       ssize_tsendmsg(int s,conststructmsghdr*msg,int flags);

DESCRIPTION
       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  specifying  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.

       When the message does not fit into the send buffer of the socket,  send
       normally  blocks, unless the socket has been placed in non-blocking I/O
       mode.  In non-blocking mode it would return EAGAIN in this  case.   The
       select(2)  call  may  be  used to determine when it is possible to send
       more data.

       The flags parameter is a flagword and can contain the following flags:

       MSG_OOB
              Sends out-of-band data on sockets that support this notion (e.g.
              SOCK_STREAM);  the underlying protocol must also support out-of-
              band data.

       MSG_DONTROUTE
              Dont't use a gateway to send out the packet, only send to  hosts
              on  directly  connected  networks.  This is usually used only by
              diagnostic or routing programs. This is only defined for  proto-
              col families that route; packet sockets don't.

       MSG_DONTWAIT
              Enables  non-blocking  operation;  if the operation would block,
              EAGAIN is returned (this can also be enabled  using  the  O_NON-
              BLOCK with the F_SETFLfcntl(2)).

       MSG_NOSIGNAL
              Requests  not to send SIGPIPE on errors on stream oriented sock-
              ets when the other end breaks the connection. The EPIPE error is
              still returned.

       MSG_CONFIRM (Linux 2.3+ only)
              Tell  the  link  layer  that forward process happened: you got a
              successful reply from the other side. If the link layer  doesn't
              get  this it'll regularly reprobe the neighbour (e.g. via a uni-
              cast ARP).  Only valid on SOCK_DGRAM and  SOCK_RAW  sockets  and
              currently  only  implemented  for  IPv4 and IPv6. See arp(7) for
              details.

       The definition of the msghdr structure follows. See recv(2)  and  below
       for an exact description of its fields.

              struct msghdr {
                  void         * msg_name;     /* optional address */
                  socklen_t    msg_namelen;    /* size of address */
                  struct iovec * msg_iov;      /* scatter/gather array */
                  size_t       msg_iovlen;     /* # elements in msg_iov */
                  void         * msg_control;  /* ancillary data, see below */
                  socklen_t    msg_controllen; /* ancillary data buffer len */
                  int          msg_flags;      /* flags on received message */
              };

       You  may  send  control  information using the msg_control and msg_con-
       trollen members. The maximum control buffer length the kernel can  pro-
       cess  is  limited  per  socket  by  the net.core.optmem_max sysctl; see
       socket(7).

RETURNVALUE
       The calls return the number of characters  sent,  or  -1  if  an  error
       occurred.

ERRORS
       These  are  some  standard  errors generated by the socket layer. Addi-
       tional errors may be generated and returned from the underlying  proto-
       col modules; see their respective manual pages.

       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 atomically, and the
              size of the message to be sent made this impossible.

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

       ENOBUFS
              The  output queue for a network interface was full.  This gener-
              ally indicates that the interface has stopped sending,  but  may
              be caused by transient congestion.  (This cannot occur in Linux,
              packets are just silently dropped  when  a  device  queue  over-
              flows.)

       EINTR  A signal occurred.

       ENOMEM No memory available.

       EINVAL Invalid argument passed.

       EPIPE  The  local  end  has  been  shut  down  on a connection oriented
              socket.  In this case the process will also  receive  a  SIGPIPE
              unless MSG_NOSIGNAL is set.

CONFORMINGTO
       4.4BSD,  SVr4,  POSIX  1003.1g  draft (these function calls appeared in
       4.2BSD).

       MSG_CONFIRM is a Linux extension.

NOTE
       The prototypes given above follow the  Single  Unix  Specification,  as
       glibc2  also  does;  the  flags  argument  was  'int'  in  BSD 4.*, but
       'unsigned int' in libc4 and libc5; the len argument was  'int'  in  BSD
       4.*  and  libc4, but 'size_t' in libc5; the tolen argument was 'int' in
       BSD 4.* and libc4 and libc5.  See also accept(2).

SEEALSO
       fcntl(2), recv(2), select(2),  getsockopt(2),  sendfile(2),  socket(2),
       write(2), socket(7), ip(7), tcp(7), udp(7)



Linux Man Page                    2002-12-31                           SEND(2)

_Exitgetsockoptoutwshmat
_exitgettidoutw_pshmctl
_llseekgettimeofdaypauseshmdt
_newselectgetuidpersonalityshmget
_sysctlgttypipeshmop
acceptidlepivot_rootshutdown
accessinbpollsigaction
acctinb_pprctlsigaltstack
adjtimexinlpreadsigblock
afs_syscallinl_pprofsiggetmask
alarminsbpselectsigmask
alloc_hugepagesinslptracesignal
arch_prctlinswpwritesigpause
bdflushintroquotactlsigpending
bindinwreadsigprocmask
breakinw_preaddirsigqueue
brkioctlreadlinksigreturn
cacheflushioctl_listreadvsigsetmask
capgetiopermrebootsigsuspend
capsetioplrecvsigtimedwait
chdiripcrecvfromsigvec
chmodkillrecvmsgsigwaitinfo
chownkillpgrenamesocket
chrootlchownrmdirsocketcall
clonelinksbrksocketpair
closelistensched_get_priority_maxssetmask
connectllseeksched_get_priority_minstat
creatlocksched_getaffinitystatfs
duplseeksched_getparamstime
dup2lstatsched_getschedulerstty
execvemadvisesched_rr_get_intervalswapoff
exitmincoresched_setaffinityswapon
fchdirmkdirsched_setparamsymlink
fchmodmknodsched_setschedulersync
fchownmlocksched_yieldsyscall
fcntlmlockallselectsyscalls
fdatasyncmmapselect_tutsysctl
flockmmap2semctlsysfs
forkmodify_ldtsemgetsysinfo
free_hugepagesmountsemopsyslog
fstatmprotectsendtime
fstatfsmpxsendfiletimes
fsyncmremapsendmsgtkill
ftruncatemsgctlsendtotruncate
futexmsggetsetcontextumask
getcontextmsgopsetdomainnameumount
getdentsmsgrcvsetegidumount2
getdomainnamemsgsndseteuiduname
getdtablesizemsyncsetfsgidundocumented
getegidmunlocksetfsuidunimplemented
geteuidmunlockallsetgidunlink
getgidmunmapsetgroupsuselib
getgroupsnanosleepsethostidustat
gethostidnfsservctlsethostnameutime
gethostnamenicesetitimerutimes
getitimerobsoletesetpgidvfork
getpagesizeoldfstatsetpgrpvhangup
getpeernameoldlstatsetpriorityvm86
getpgidoldoldunamesetregidwait
getpgrpoldstatsetresgidwait3
getpidoldunamesetresuidwait4
getppidopensetreuidwaitpid
getpriorityoutbsetrlimitwrite
getresgidoutb_psetsidwritev
getresuidoutlsetsockopt 
getrlimitoutl_psettimeofday 
getrusageoutsbsetuid 
getsidoutslsetup 


ImageMagick 6.5.7.5
ImageMagick image processing studio
Krusader 2.1.0-beta1
Twin-Panel filemanager for KDE3
LilyPond 2.13.7
Music typesetter.
KDevelop 4.0 beta6
Integrated Development Environment for Unix/X11
KDE 4.3.3
Powerful Open Source graphical desktop environment.
Mandriva Linux 2010.0
Linux distribution by Mandriva
Linux Kernel 2.6 2.6.32-rc6
Linux Kernel
WebGUI 7.7.25
A fully featured content management system.
SimplyMEPIS 8.0.12
Run the Linux operating system from your CD or DVD drive
Fedora 12 rc1
Community-supported open source distribution
Free IT Magazines, White Papers, eBooks, and more !
Oracle Magazine

Contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more.

Vulnerability Management for Dummies

Get all the Facts and See How to Implement a Successful Vulnerability Management Program.

Website Magazine

Has tapped premier talent in the Internet industry for our content and each and every issue will contain practical advice and insights for website owners.

Linux Software Map
Find Linux RPM
Best Rated Linux Software
Most Rated Linux Software
Linux Distributions
Linux Howtos
Quick Survey

Please take our survey and help us improve our website to serve you better.

Thank you.
Linux Software
Linux / IT Resources
Site Resources
Google
Privacy Policy
Contact Us
Submit Software
Advertising info