Annotation of 43BSDReno/lib/libc/sys/send.2, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1983 The Regents of the University of California.
        !             2: .\" All rights reserved.
        !             3: .\"
        !             4: .\" Redistribution and use in source and binary forms are permitted provided
        !             5: .\" that: (1) source distributions retain this entire copyright notice and
        !             6: .\" comment, and (2) distributions including binaries display the following
        !             7: .\" acknowledgement:  ``This product includes software developed by the
        !             8: .\" University of California, Berkeley and its contributors'' in the
        !             9: .\" documentation or other materials provided with the distribution and in
        !            10: .\" all advertising materials mentioning features or use of this software.
        !            11: .\" Neither the name of the University nor the names of its contributors may
        !            12: .\" be used to endorse or promote products derived from this software without
        !            13: .\" specific prior written permission.
        !            14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
        !            15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
        !            16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            17: .\"
        !            18: .\"    @(#)send.2      6.6 (Berkeley) 6/23/90
        !            19: .\"
        !            20: .TH SEND 2 "June 23, 1990"
        !            21: .UC 5
        !            22: .SH NAME
        !            23: send, sendto, sendmsg \- send a message from a socket
        !            24: .SH SYNOPSIS
        !            25: .nf
        !            26: .ft B
        !            27: #include <sys/types.h>
        !            28: #include <sys/socket.h>
        !            29: .PP
        !            30: .ft B
        !            31: cc = send(s, msg, len, flags)
        !            32: int cc, s;
        !            33: char *msg;
        !            34: int len, flags;
        !            35: .PP
        !            36: .ft B
        !            37: cc = sendto(s, msg, len, flags, to, tolen)
        !            38: int cc, s;
        !            39: char *msg;
        !            40: int len, flags;
        !            41: struct sockaddr *to;
        !            42: int tolen;
        !            43: .PP
        !            44: .ft B
        !            45: cc = sendmsg(s, msg, flags)
        !            46: int cc, s;
        !            47: struct msghdr *msg;
        !            48: int flags;
        !            49: .fi
        !            50: .SH DESCRIPTION
        !            51: .IR Send ,
        !            52: .IR sendto ,
        !            53: and
        !            54: .I sendmsg
        !            55: are used to transmit a message to another socket.
        !            56: .I Send
        !            57: may be used only when the socket is in a 
        !            58: .I connected
        !            59: state, while 
        !            60: .I sendto
        !            61: and
        !            62: .I sendmsg
        !            63: may be used at any time.
        !            64: .PP
        !            65: The address of the target is given by
        !            66: .I to
        !            67: with 
        !            68: .I tolen
        !            69: specifying its size.
        !            70: The length of the message is given by
        !            71: .IR len .
        !            72: If the message is too long to pass atomically through the
        !            73: underlying protocol, then the error EMSGSIZE is returned, and
        !            74: the message is not transmitted.
        !            75: .PP
        !            76: No indication of failure to deliver is implicit in a
        !            77: .IR send .
        !            78: Return values of \-1 indicate some locally detected errors.
        !            79: .PP
        !            80: If no messages space is available at the socket to hold
        !            81: the message to be transmitted, then
        !            82: .I send
        !            83: normally blocks, unless the socket has been placed in
        !            84: non-blocking I/O mode.
        !            85: The
        !            86: .IR select (2)
        !            87: call may be used to determine when it is possible to
        !            88: send more data.
        !            89: .PP
        !            90: The
        !            91: .I flags
        !            92: parameter may include one or more of the following:
        !            93: .PP
        !            94: .nf
        !            95: .RS
        !            96: .ta \w'#define\ \ 'u +\w'MSG_DONTROUTE\ \ \ 'u +\w'0x\0\0\0\ \ 'u
        !            97: #define        MSG_OOB 0x1     /* process out-of-band data */
        !            98: #define        MSG_DONTROUTE   0x4     /* bypass routing, use direct interface */
        !            99: .RE
        !           100: .fi
        !           101: The flag MSG_OOB is used to send \*(lqout-of-band\*(rq
        !           102: data on sockets that support this notion (e.g. SOCK_STREAM);
        !           103: the underlying protocol must also support \*(lqout-of-band\*(rq data.
        !           104: MSG_DONTROUTE is usually used only by diagnostic or routing programs.
        !           105: .PP
        !           106: See 
        !           107: .IR recv (2)
        !           108: for a description of the
        !           109: .I msghdr
        !           110: structure.
        !           111: .SH "RETURN VALUE
        !           112: The call returns the number of characters sent, or \-1
        !           113: if an error occurred.
        !           114: .SH "ERRORS
        !           115: .TP 20
        !           116: [EBADF]
        !           117: An invalid descriptor was specified.
        !           118: .TP 20
        !           119: [ENOTSOCK]
        !           120: The argument \fIs\fP is not a socket.
        !           121: .TP 20
        !           122: [EFAULT]
        !           123: An invalid user space address was specified for a parameter.
        !           124: .TP 20
        !           125: [EMSGSIZE]
        !           126: The socket requires that message be sent atomically,
        !           127: and the size of the message to be sent made this impossible.
        !           128: .TP 20
        !           129: [EWOULDBLOCK]
        !           130: The socket is marked non-blocking and the requested operation
        !           131: would block.
        !           132: .TP 20
        !           133: [ENOBUFS]
        !           134: The system was unable to allocate an internal buffer.
        !           135: The operation may succeed when buffers become available.
        !           136: .TP 20
        !           137: [ENOBUFS]
        !           138: The output queue for a network interface was full.
        !           139: This generally indicates that the interface has stopped sending,
        !           140: but may be caused by transient congestion.
        !           141: .SH SEE ALSO
        !           142: 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.