Annotation of cci/usr/src/man/man2/send.2, revision 1.1

1.1     ! root        1: .TH SEND 2 "20 September 1983"
        !             2: .UC 4
        !             3: .SH NAME
        !             4: send, sendto, sendmsg \- send a message from a socket
        !             5: .SH SYNOPSIS
        !             6: .nf
        !             7: .ft B
        !             8: #include <sys/types.h>
        !             9: #include <sys/socket.h>
        !            10: .PP
        !            11: .ft B
        !            12: cc = send(s, msg, len, flags)
        !            13: int cc, s;
        !            14: char *msg;
        !            15: int len, flags;
        !            16: .PP
        !            17: .ft B
        !            18: cc = sendto(s, msg, len, flags, to, tolen)
        !            19: int cc, s;
        !            20: char *msg;
        !            21: int len, flags;
        !            22: struct sockaddr *to;
        !            23: int tolen;
        !            24: .PP
        !            25: .ft B
        !            26: cc = sendmsg(s, msg, flags)
        !            27: int cc, s;
        !            28: struct msghdr msg[];
        !            29: int flags;
        !            30: .fi
        !            31: .SH DESCRIPTION
        !            32: .IR Send ,
        !            33: .IR sendto ,
        !            34: and
        !            35: .I sendmsg
        !            36: are used to transmit a message to another socket.
        !            37: .I Send
        !            38: may be used only when the socket is in a 
        !            39: .I connected
        !            40: state, while 
        !            41: .I sendto
        !            42: and
        !            43: .I sendmsg
        !            44: may be used at any time.
        !            45: .PP
        !            46: The address of the target is given by
        !            47: .I to
        !            48: with 
        !            49: .I tolen
        !            50: specifying its size.
        !            51: The length of the message is given by
        !            52: .IR len .
        !            53: If the message is too long to pass atomically through the
        !            54: underlying protocol, then the error EMSGSIZE is returned, and
        !            55: the message is not transmitted.
        !            56: .PP
        !            57: No indication of failure to deliver is implicit in a
        !            58: .IR send .
        !            59: Return values of \-1 indicate some locally detected errors.
        !            60: .PP
        !            61: If no messages space is available at the socket to hold
        !            62: the message to be transmitted, then
        !            63: .I send
        !            64: normally blocks, unless the socket has been placed in
        !            65: non-blocking i/o mode.
        !            66: The
        !            67: .IR select (2)
        !            68: call may be used to determine when it is possible to
        !            69: send more data.
        !            70: .PP
        !            71: The
        !            72: .I flags
        !            73: parameter may be set to MSG_OOB to send \*(lqout-of-band\*(rq
        !            74: data on sockets which support this notion (e.g. SOCK_STREAM).
        !            75: .PP
        !            76: See 
        !            77: .IR recv (2)
        !            78: for a description of the
        !            79: .I msghdr
        !            80: structure, of sending and receiving file descriptors in Unix domain via this
        !            81: .I msghdr
        !            82: structure, and of receiving out-of-band data.
        !            83: .SH "RETURN VALUE
        !            84: The call returns the number of characters sent, or \-1
        !            85: if an error occurred.
        !            86: .SH "ERRORS
        !            87: .TP 20
        !            88: [EBADF]
        !            89: An invalid descriptor was specified.
        !            90: .TP 20
        !            91: [ENOTSOCK]
        !            92: The argument \fIs\fP is not a socket.
        !            93: .TP 20
        !            94: [EFAULT]
        !            95: An invalid user space address was specified for a parameter.
        !            96: .TP 20
        !            97: [EMSGSIZE]
        !            98: The socket requires that message be sent atomically,
        !            99: and the size of the message to be sent made this impossible.
        !           100: .TP 20
        !           101: [EWOULDBLOCK]
        !           102: The socket is marked non-blocking and the requested operation
        !           103: would block.
        !           104: .SH SEE ALSO
        !           105: recv(2), socket(2). See also bind(2) for address formats in different
        !           106: communication domains.
        !           107: .SH BUGS
        !           108: Out-of-band data is only 1 character long.

unix.superglobalmegacorp.com

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