Annotation of 43BSDTahoe/man/man2/send.2, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1983 Regents of the University of California.
        !             2: .\" All rights reserved.  The Berkeley software License Agreement
        !             3: .\" specifies the terms and conditions for redistribution.
        !             4: .\"
        !             5: .\"    @(#)send.2      6.4 (Berkeley) 7/21/87
        !             6: .\"
        !             7: .TH SEND 2 "July 21, 1987"
        !             8: .UC 5
        !             9: .SH NAME
        !            10: send, sendto, sendmsg \- send a message from a socket
        !            11: .SH SYNOPSIS
        !            12: .nf
        !            13: .ft B
        !            14: #include <sys/types.h>
        !            15: #include <sys/socket.h>
        !            16: .PP
        !            17: .ft B
        !            18: cc = send(s, msg, len, flags)
        !            19: int cc, s;
        !            20: char *msg;
        !            21: int len, flags;
        !            22: .PP
        !            23: .ft B
        !            24: cc = sendto(s, msg, len, flags, to, tolen)
        !            25: int cc, s;
        !            26: char *msg;
        !            27: int len, flags;
        !            28: struct sockaddr *to;
        !            29: int tolen;
        !            30: .PP
        !            31: .ft B
        !            32: cc = sendmsg(s, msg, flags)
        !            33: int cc, s;
        !            34: struct msghdr *msg;
        !            35: int flags;
        !            36: .fi
        !            37: .SH DESCRIPTION
        !            38: .IR Send ,
        !            39: .IR sendto ,
        !            40: and
        !            41: .I sendmsg
        !            42: are used to transmit a message to another socket.
        !            43: .I Send
        !            44: may be used only when the socket is in a 
        !            45: .I connected
        !            46: state, while 
        !            47: .I sendto
        !            48: and
        !            49: .I sendmsg
        !            50: may be used at any time.
        !            51: .PP
        !            52: The address of the target is given by
        !            53: .I to
        !            54: with 
        !            55: .I tolen
        !            56: specifying its size.
        !            57: The length of the message is given by
        !            58: .IR len .
        !            59: If the message is too long to pass atomically through the
        !            60: underlying protocol, then the error EMSGSIZE is returned, and
        !            61: the message is not transmitted.
        !            62: .PP
        !            63: No indication of failure to deliver is implicit in a
        !            64: .IR send .
        !            65: Return values of \-1 indicate some locally detected errors.
        !            66: .PP
        !            67: If no messages space is available at the socket to hold
        !            68: the message to be transmitted, then
        !            69: .I send
        !            70: normally blocks, unless the socket has been placed in
        !            71: non-blocking I/O mode.
        !            72: The
        !            73: .IR select (2)
        !            74: call may be used to determine when it is possible to
        !            75: send more data.
        !            76: .PP
        !            77: The
        !            78: .I flags
        !            79: parameter may include one or more of the following:
        !            80: .PP
        !            81: .nf
        !            82: .RS
        !            83: .ta \w'#define\ \ 'u +\w'MSG_DONTROUTE\ \ \ 'u +\w'0x\0\0\0\ \ 'u
        !            84: #define        MSG_OOB 0x1     /* process out-of-band data */
        !            85: #define        MSG_DONTROUTE   0x4     /* bypass routing, use direct interface */
        !            86: .RE
        !            87: .fi
        !            88: The flag MSG_OOB is used to send \*(lqout-of-band\*(rq
        !            89: data on sockets that support this notion (e.g. SOCK_STREAM);
        !            90: the underlying protocol must also support \*(lqout-of-band\*(rq data.
        !            91: MSG_DONTROUTE is usually used only by diagnostic or routing programs.
        !            92: .PP
        !            93: See 
        !            94: .IR recv (2)
        !            95: for a description of the
        !            96: .I msghdr
        !            97: structure.
        !            98: .SH "RETURN VALUE
        !            99: The call returns the number of characters sent, or \-1
        !           100: if an error occurred.
        !           101: .SH "ERRORS
        !           102: .TP 20
        !           103: [EBADF]
        !           104: An invalid descriptor was specified.
        !           105: .TP 20
        !           106: [ENOTSOCK]
        !           107: The argument \fIs\fP is not a socket.
        !           108: .TP 20
        !           109: [EFAULT]
        !           110: An invalid user space address was specified for a parameter.
        !           111: .TP 20
        !           112: [EMSGSIZE]
        !           113: The socket requires that message be sent atomically,
        !           114: and the size of the message to be sent made this impossible.
        !           115: .TP 20
        !           116: [EWOULDBLOCK]
        !           117: The socket is marked non-blocking and the requested operation
        !           118: would block.
        !           119: .TP 20
        !           120: [ENOBUFS]
        !           121: The system was unable to allocate an internal buffer.
        !           122: The operation may succeed when buffers become available.
        !           123: .TP 20
        !           124: [ENOBUFS]
        !           125: The output queue for a network interface was full.
        !           126: This generally indicates that the interface has stopped sending,
        !           127: but may be caused by transient congestion.
        !           128: .SH SEE ALSO
        !           129: fcntl(2), recv(2), select(2), getsockopt(2), socket(2), write(2)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.