sendmsg man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

sendmsg(2)							    sendmsg(2)

NAME
       sendmsg - Send a message from a socket using a message structure

SYNOPSIS
       #include <sys/socket.h>

       ssize_t sendmsg(
	       int socket,
	       const struct msghdr *message,
	       int flags );

       [Tru64  UNIX]  The  following definition of the sendmsg() function does
       not conform to current standards and is	supported  only	 for  backward
       compatibility (see standards(5)): int sendmsg(
	       int socket,
	       struct msghdr *message,
	       int flags );

STANDARDS
       Interfaces  documented on this reference page conform to industry stan‐
       dards as follows:

       sendmsg(): XNS4.0, XNS5.0

       Refer to the standards(5) reference page	 for  more  information	 about
       industry standards and associated tags.

PARAMETERS
       Specifies  the  socket  file descriptor.	 Points to a msghdr structure,
       containing pointers to both the destination address  for	 the  outgoing
       message	and  to	 buffers  containing ancillary data. The format of the
       address is determined by the behavior requested for the socket.

	      The  msghdr  structure  uses  a  socklen_t  data	type  for  the
	      msg_iovlen  field	 instead of a size_t data type as specified in
	      XNS4.0.

	      [Tru64 UNIX]    If  the  compile-time  option  _SOCKADDR_LEN  is
	      defined  before  the <sys/socket.h> header file is included, the
	      msghdr structure takes 4.4BSD behavior. Otherwise,  the  default
	      4.3BSD msghdr structure is used.

	      In  4.4BSD,  the msghdr structure has a separate msg_flags field
	      for holding flags from the received message.  In	addition,  the
	      msg_accrights field is generalized into a msg_control field. See
	      the recvmsg() function for more information.

	      If _SOCKADDR_LEN is defined,  the	 4.3BSD	 msghdr	 structure  is
	      defined with the name omsghdr.  Allows the sender to control the
	      message transmission. The <sys/socket.h> file contains the flags
	      values. The flags value to send a call is formed by a logical OR
	      of one or both of the following values: Terminates a record  (if
	      supported by the protocol).  Processes out-of-band data on sock‐
	      ets that support out-of-band data.  [Tru64 UNIX]	Sends  without
	      using  routing  tables. (Not recommended; for debugging purposes
	      only.)

DESCRIPTION
       The sendmsg() function sends messages through connected or  unconnected
       sockets	using the msghdr message structure.  This minimizes the number
       of  directly  supplied	parameters   to	  the	function   call.   The
       <sys/socket.h>  file  contains  the  msghdr  structure  and defines the
       structure members.

       If the sending socket has no space to hold the message to be  transmit‐
       ted,  sendmsg()	waits until space is available unless the socket is in
       non-blocking I/O mode.

       To broadcast on a socket, the application program must  first  issue  a
       setsockopt()  function  using the SO_BROADCAST option to gain broadcast
       permissions.

       Use the select() and poll() functions to determine when	to  send  more
       data.

NOTES
       [Tru64  UNIX]  When  compiled  in the X/Open UNIX environment, calls to
       the sendmsg() function are internally renamed by prepending _E  to  the
       function	 name.	When  you  are	debugging  a  module that includes the
       sendmsg()  function  and	 for  which  _XOPEN_SOURCE_EXTENDED  has  been
       defined, use _Esendmsg to refer to the sendmsg() call. See standards(5)
       for further information.

       [Tru64 UNIX]  When compiled in the POSIX.1g socket  environment,	 calls
       to  the	sendmsg()  function are internally renamed by prepending _P to
       the function name. When you are debugging a module  that	 includes  the
       sendmsg()  function  and	 for which _POSIX_PII_SOCKET has been defined,
       use _Psendmsg to refer to the sendmsg() call. See standards(5) for fur‐
       ther information.

RETURN VALUES
       Upon  successful	 completion, the sendmsg() function returns the number
       of characters sent. Otherwise, a value of -1 is returned and  errno  is
       set to indicate the error.

ERRORS
       If the sendmsg() function fails, errno may be set to one of the follow‐
       ing values: Search permission is denied for a  component	 of  the  path
       prefix;	or write access to the named socket is denied.	You cannot use
       addresses in the specified address family with this socket.  The socket
       parameter  is not valid.	 A peer forcibly closed a connection.  You did
       not specify a destination address for the  connectionless  socket  that
       also did not have its peer address set.	The message parameter; storage
       pointed to by the msg_name, msg_control, or msg_iov fields of the  mes‐
       sage  parameter;	 or storage pointed to by the iovec structures pointed
       to by the msg_iov field are not in a readable or writable part of  user
       address-space.	The  destination host is unreachable. Possible reasons
       include the host is down or the router has no route.  A	signal	inter‐
       rupted sendmsg before any data was transmitted.	The sum of the iov_len
       values overflows an ssize_t.  An I/O error occurred while reading  from
       or  writing  to	the  file  system.  The connection-oriented socket for
       which a destination address was specified is  already  connected.   Too
       many symbolic links were encountered in translating the pathname in the
       socket address.	The message is too large to be sent all	 at  once,  as
       the socket requires.

	      The  value  of  the msg_iovlen member of the msghdr structure is
	      less than or equal to zero (0) or is greater than IOV_MAX.   For
	      AF_UNIX  sockets,	 a component of the pathname exceeded NAME_MAX
	      characters, or an entire pathname exceeded PATH_MAX  characters.
	      The  local  network connection is not operational.  The destina‐
	      tion network is unreachable.  Insufficient resources were avail‐
	      able in the system to complete the call.

	      [Tru64  UNIX]  The interface driver's send queue is full. If the
	      problem persists, you might increase the value for the ifqmaxlen
	      system  attribute in the net subsystem. See sys_attrs_net(5) for
	      more information.	 A component of the pathname does not name  an
	      existing	file  or  the pathname is an empty string.  The system
	      did not have sufficient memory  to  fulfill  the	request.   The
	      available	 STREAMS resources were insufficient for the operation
	      to complete.  A socket is connection-oriented but	 is  not  con‐
	      nected.	A  component  of  the  path  prefix of the pathname in
	      address is not a directory.  The socket parameter	 refers	 to  a
	      file,  not  a  socket.  The socket argument is associated with a
	      socket that does not support one or more of the  values  set  in
	      flags.   The  socket  is shut down for writing, or the socket is
	      connection-oriented and the peer is  closed  or  shut  down  for
	      reading.	In  the	 latter	 case,	and  if	 the socket is of type
	      SOCK_STREAM, the SIGPIPE signal  is  generated  to  the  calling
	      process.	 The  socket  is  marked  nonblocking, and no space is
	      available for the sendmsg() function.

SEE ALSO
       Functions: recv(2), recvfrom(2), recvmsg(2), send(2), sendto(2),	 shut‐
       down(2), socket(2), select(2), getsockopt(2), setsockopt(2)

       Standards: standards(5)

       Network Programmer's Guide

								    sendmsg(2)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net