4.3BSD-UWisc/man/cat2/accept.2

Compare this file to the similar file:
Show the results in this format:




ACCEPT(2)           UNIX Programmer's Manual            ACCEPT(2)



NAME
     accept - accept a connection on a socket

SYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>

     ns = accept(s, addr, addrlen)
     int ns, s;
     struct sockaddr *addr;
     int *addrlen;

DESCRIPTION
     The argument _s is a socket that has been created with
     _s_o_c_k_e_t(2), bound to an address with _b_i_n_d(2), and is listen-
     ing for connections after a _l_i_s_t_e_n(2).  _A_c_c_e_p_t extracts the
     first connection on the queue of pending connections,
     creates a new socket with the same properties of _s and allo-
     cates a new file descriptor, _n_s, for the socket.  If no
     pending connections are present on the queue, and the socket
     is not marked as non-blocking, _a_c_c_e_p_t blocks the caller
     until a connection is present.  If the socket is marked
     non-blocking and no pending connections are present on the
     queue, _a_c_c_e_p_t returns an error as described below.  The
     accepted socket, _n_s, may not be used to accept more connec-
     tions.  The original socket _s remains open.

     The argument _a_d_d_r is a result parameter that is filled in
     with the address of the connecting entity, as known to the
     communications layer.  The exact format of the _a_d_d_r parame-
     ter is determined by the domain in which the communication
     is occurring.  The _a_d_d_r_l_e_n is a value-result parameter; it
     should initially contain the amount of space pointed to by
     _a_d_d_r; on return it will contain the actual length (in bytes)
     of the address returned.  This call is used with
     connection-based socket types, currently with SOCK_STREAM.

     It is possible to _s_e_l_e_c_t(2) a socket for the purposes of
     doing an _a_c_c_e_p_t by selecting it for read.

RETURN VALUE
     The call returns -1 on error.  If it succeeds, it returns a
     non-negative integer that is a descriptor for the accepted
     socket.

ERRORS
     The _a_c_c_e_p_t will fail if:

     [EBADF]             The descriptor is invalid.

     [ENOTSOCK]          The descriptor references a file, not a
                         socket.



Printed 12/27/86          May 22, 1986                          1






ACCEPT(2)           UNIX Programmer's Manual            ACCEPT(2)



     [EOPNOTSUPP]        The referenced socket is not of type
                         SOCK_STREAM.

     [EFAULT]            The _a_d_d_r parameter is not in a writable
                         part of the user address space.

     [EWOULDBLOCK]       The socket is marked non-blocking and no
                         connections are present to be accepted.

SEE ALSO
     bind(2), connect(2), listen(2), select(2), socket(2)












































Printed 12/27/86          May 22, 1986                          2