]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/man/man2/send.2
xnu-4903.270.47.tar.gz
[apple/xnu.git] / bsd / man / man2 / send.2
index 9b6346372ade81696775e32ac792fc4d7e8c9334..acadd27b245e9d12603a4a9c64d6b807b472a021 100644 (file)
@@ -53,7 +53,7 @@
 .Ft ssize_t
 .Fo sendmsg
 .Fa "int socket"
 .Ft ssize_t
 .Fo sendmsg
 .Fa "int socket"
-.Fa "const struct msghdr *buffer"
+.Fa "const struct msghdr *message"
 .Fa "int flags"
 .Fc
 .Ft ssize_t
 .Fa "int flags"
 .Fc
 .Ft ssize_t
 .Fa "socklen_t dest_len"
 .Fc
 .Sh DESCRIPTION
 .Fa "socklen_t dest_len"
 .Fc
 .Sh DESCRIPTION
-.Fn Send ,
+.Fn send ,
 .Fn sendto ,
 and
 .Fn sendmsg
 are used to transmit a message to another socket.
 .Fn sendto ,
 and
 .Fn sendmsg
 are used to transmit a message to another socket.
-.Fn Send
+.Fn send
 may be used only when the socket is in a 
 .Em connected
 state, while 
 may be used only when the socket is in a 
 .Em connected
 state, while 
@@ -127,9 +127,33 @@ data.
 .Dv MSG_DONTROUTE
 is usually used only by diagnostic or routing programs.
 .Pp
 .Dv MSG_DONTROUTE
 is usually used only by diagnostic or routing programs.
 .Pp
+The
+.Fn sendmsg
+system call uses a
+.Fa msghdr
+structure to minimize the number of directly supplied arguments.
+The 
+.Fa msg_iov
+and 
+.Fa msg_iovlen 
+fields of message specify zero or more buffers 
+containing the data to be sent. 
+.Fa msg_iov 
+points to an array of iovec structures; 
+.Fa msg_iovlen 
+shall be set to the dimension of this array. 
+In each iovec structure, the 
+.Fa iov_base 
+field specifies a storage area and 
+the 
+.Fa iov_len 
+field gives its size in bytes. Some of these sizes can be zero. 
+The data from each storage area indicated by 
+.Fa msg_iov 
+is sent in turn.
 See 
 .Xr recv 2
 See 
 .Xr recv 2
-for a description of the
+for a complete description of the
 .Fa msghdr
 structure.
 .Sh RETURN VALUES
 .Fa msghdr
 structure.
 .Sh RETURN VALUES
@@ -174,6 +198,7 @@ before any data is transmitted.
 .It Bq Er EMSGSIZE
 The socket requires that message be sent atomically,
 and the size of the message to be sent makes this impossible.
 .It Bq Er EMSGSIZE
 The socket requires that message be sent atomically,
 and the size of the message to be sent makes this impossible.
+.Dv IOV_MAX .
 .\" ===========
 .It Bq Er ENETDOWN
 The local network interface used to reach the destination is down.
 .\" ===========
 .It Bq Er ENETDOWN
 The local network interface used to reach the destination is down.
@@ -205,6 +230,9 @@ The socket is shut down for writing
 or the socket is connection-mode and is no longer connected.
 In the latter case, and if the socket is of type SOCK_STREAM,
 the SIGPIPE signal is generated to the calling thread.
 or the socket is connection-mode and is no longer connected.
 In the latter case, and if the socket is of type SOCK_STREAM,
 the SIGPIPE signal is generated to the calling thread.
+.\" ==========
+.It Bq Er EADDRNOTAVAIL
+The specified address is not available or no longer available on this machine.
 .El
 .Pp
 The
 .El
 .Pp
 The
@@ -259,6 +287,13 @@ system call will fail if:
 .\" ===========
 .It Bq Er EINVAL
 The sum of the iov_len values overflows an ssize_t.
 .\" ===========
 .It Bq Er EINVAL
 The sum of the iov_len values overflows an ssize_t.
+.\" ===========
+.It Bq Er EMSGSIZE
+The socket requires that message be sent atomically,
+and the size of the message to be sent makes this impossible, 
+or the msg_iovlen member of the msghdr structure pointed to by message 
+is less than or equal to 0 or is greater than 
+.Dv IOV_MAX .
 .El
 .Sh LEGACY SYNOPSIS
 .Fd #include <sys/types.h>
 .El
 .Sh LEGACY SYNOPSIS
 .Fd #include <sys/types.h>