aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/sys/send.2
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/sys/send.2')
-rw-r--r--lib/libc/sys/send.2295
1 files changed, 0 insertions, 295 deletions
diff --git a/lib/libc/sys/send.2 b/lib/libc/sys/send.2
deleted file mode 100644
index dd6406fc6832..000000000000
--- a/lib/libc/sys/send.2
+++ /dev/null
@@ -1,295 +0,0 @@
-.\" Copyright (c) 1983, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" From: @(#)send.2 8.2 (Berkeley) 2/21/94
-.\" $FreeBSD$
-.\"
-.Dd April 27, 2020
-.Dt SEND 2
-.Os
-.Sh NAME
-.Nm send ,
-.Nm sendto ,
-.Nm sendmsg ,
-.Nm sendmmsg
-.Nd send message(s) from a socket
-.Sh LIBRARY
-.Lb libc
-.Sh SYNOPSIS
-.In sys/socket.h
-.Ft ssize_t
-.Fn send "int s" "const void *msg" "size_t len" "int flags"
-.Ft ssize_t
-.Fn sendto "int s" "const void *msg" "size_t len" "int flags" "const struct sockaddr *to" "socklen_t tolen"
-.Ft ssize_t
-.Fn sendmsg "int s" "const struct msghdr *msg" "int flags"
-.Ft ssize_t
-.Fn sendmmsg "int s" "struct mmsghdr * restrict msgvec" "size_t vlen" "int flags"
-.Sh DESCRIPTION
-The
-.Fn send
-and
-.Fn sendmmsg
-functions,
-and
-.Fn sendto
-and
-.Fn sendmsg
-system calls
-are used to transmit one or more messages (with the
-.Fn sendmmsg
-call) to
-another socket.
-The
-.Fn send
-function
-may be used only when the socket is in a
-.Em connected
-state.
-The functions
-.Fn sendto ,
-.Fn sendmsg
-and
-.Fn sendmmsg
-may be used at any time if the socket is connectionless-mode.
-If the socket is connection-mode, the protocol
-must support implied connect (currently
-.Xr tcp 4
-is the only protocol with support) or the socket must be in a
-connected state before use.
-.Pp
-The address of the target is given by
-.Fa to
-with
-.Fa tolen
-specifying its size, or the equivalent
-.Fa msg_name
-and
-.Fa msg_namelen
-in
-.Fa struct msghdr .
-If the socket is in a connected state, the target address passed to
-.Fn sendto ,
-.Fn sendmsg
-or
-.Fn sendmmsg
-is ignored.
-The length of the message is given by
-.Fa len .
-If the message is too long to pass atomically through the
-underlying protocol, the error
-.Er EMSGSIZE
-is returned, and
-the message is not transmitted.
-.Pp
-The
-.Fn sendmmsg
-function sends multiple messages at a call.
-They are given by the
-.Fa msgvec
-vector along with
-.Fa vlen
-specifying the vector size.
-The number of octets sent per each message is placed in the
-.Fa msg_len
-field of each processed element of the vector after transmission.
-.Pp
-No indication of failure to deliver is implicit in a
-.Fn send .
-Locally detected errors are indicated by a return value of -1.
-.Pp
-If no messages space is available at the socket to hold
-the message to be transmitted, then
-.Fn send
-normally blocks, unless the socket has been placed in
-non-blocking I/O mode.
-The
-.Xr select 2
-system call may be used to determine when it is possible to
-send more data.
-.Pp
-The
-.Fa flags
-argument may include one or more of the following:
-.Bd -literal
-#define MSG_OOB 0x00001 /* process out-of-band data */
-#define MSG_DONTROUTE 0x00004 /* bypass routing, use direct interface */
-#define MSG_EOR 0x00008 /* data completes record */
-#define MSG_DONTWAIT 0x00080 /* do not block */
-#define MSG_EOF 0x00100 /* data completes transaction */
-#define MSG_NOSIGNAL 0x20000 /* do not generate SIGPIPE on EOF */
-.Ed
-.Pp
-The flag
-.Dv MSG_OOB
-is used to send
-.Dq out-of-band
-data on sockets that support this notion (e.g.\&
-.Dv SOCK_STREAM ) ;
-the underlying protocol must also support
-.Dq out-of-band
-data.
-.Dv MSG_EOR
-is used to indicate a record mark for protocols which support the
-concept.
-The
-.Dv MSG_DONTWAIT
-flag request the call to return when it would block otherwise.
-.Dv MSG_EOF
-requests that the sender side of a socket be shut down, and that an
-appropriate indication be sent at the end of the specified data;
-this flag is only implemented for
-.Dv SOCK_STREAM
-sockets in the
-.Dv PF_INET
-protocol family.
-.Dv MSG_DONTROUTE
-is usually used only by diagnostic or routing programs.
-.Dv MSG_NOSIGNAL
-is used to prevent
-.Dv SIGPIPE
-generation when writing a socket that
-may be closed.
-.Pp
-See
-.Xr recv 2
-for a description of the
-.Fa msghdr
-structure and the
-.Fa mmsghdr
-structure.
-.Sh RETURN VALUES
-The
-.Fn send ,
-.Fn sendto
-and
-.Fn sendmsg
-calls
-return the number of octets sent.
-The
-.Fn sendmmsg
-call returns the number of messages sent.
-If an error occurred a value of -1 is returned.
-.Sh ERRORS
-The
-.Fn send
-and
-.Fn sendmmsg
-functions and
-.Fn sendto
-and
-.Fn sendmsg
-system calls
-fail if:
-.Bl -tag -width Er
-.It Bq Er EBADF
-An invalid descriptor was specified.
-.It Bq Er EACCES
-The destination address is a broadcast address, and
-.Dv SO_BROADCAST
-has not been set on the socket.
-.It Bq Er ENOTCONN
-The socket is connection-mode but is not connected.
-.It Bq Er ENOTSOCK
-The argument
-.Fa s
-is not a socket.
-.It Bq Er EFAULT
-An invalid user space address was specified for an argument.
-.It Bq Er EMSGSIZE
-The socket requires that message be sent atomically,
-and the size of the message to be sent made this impossible.
-.It Bq Er EAGAIN
-The socket is marked non-blocking, or
-.Dv MSG_DONTWAIT
-is specified, and the requested operation would block.
-.It Bq Er ENOBUFS
-The system was unable to allocate an internal buffer.
-The operation may succeed when buffers become available.
-.It Bq Er 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.
-.It Bq Er EHOSTUNREACH
-The remote host was unreachable.
-.It Bq Er EISCONN
-A destination address was specified and the socket is already connected.
-.It Bq Er ECONNREFUSED
-The socket received an ICMP destination unreachable message
-from the last message sent.
-This typically means that the
-receiver is not listening on the remote port.
-.It Bq Er EHOSTDOWN
-The remote host was down.
-.It Bq Er ENETDOWN
-The remote network was down.
-.It Bq Er EADDRNOTAVAIL
-The process using a
-.Dv SOCK_RAW
-socket was jailed and the source
-address specified in the IP header did not match the IP
-address bound to the prison.
-.It Bq Er EPIPE
-The socket is unable to send anymore data
-.Dv ( SBS_CANTSENDMORE
-has been set on the socket).
-This typically means that the socket
-is not connected.
-.El
-.Sh SEE ALSO
-.Xr connect 2 ,
-.Xr fcntl 2 ,
-.Xr getsockopt 2 ,
-.Xr recv 2 ,
-.Xr select 2 ,
-.Xr socket 2 ,
-.Xr write 2 ,
-.Xr CMSG_DATA 3
-.Sh HISTORY
-The
-.Fn send
-function appeared in
-.Bx 4.2 .
-The
-.Fn sendmmsg
-function appeared in
-.Fx 11.0 .
-.Sh BUGS
-Because
-.Fn sendmsg
-does not necessarily block until the data has been transferred, it
-is possible to transfer an open file descriptor across an
-.Dv AF_UNIX
-domain socket
-(see
-.Xr recv 2 ) ,
-then
-.Fn close
-it before it has actually been sent, the result being that the receiver
-gets a closed file descriptor.
-It is left to the application to
-implement an acknowledgment mechanism to prevent this from happening.