Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Apropos / Subsearch:
optional field

ACCEPT(2)                     System Calls Manual                    ACCEPT(2)

       accept - accept a connection on a socket

       #include <&lt;sys/types.h>&gt;
       #include <&lt;sys/socket.h>&gt;

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

       The  argument s is a socket that has been created with socket(2), bound
       to an address with bind(2), and is listening for  connections  after  a
       listen(2).   accept()  extracts  the  first  connection on the queue of
       pending connections, creates a new socket with the same properties of s
       and allocates a new file descriptor for the socket.  If no pending con-
       nections are present on the queue, and the socket is not marked as non-
       blocking, accept() blocks the caller until a connection is present.  If
       the socket is  marked  non-blocking  and  no  pending  connections  are
       present  on  the  queue,  accept() returns an error as described below.
       The accepted socket is used to read and write  data  to  and  from  the
       socket  which connected to this one; it is not used to accept more con-
       nections.  The original socket s remains  open  for  accepting  further

       The  argument  addr  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 addr parameter is determined by the domain in
       which the communication is occurring.  The addrlen  is  a  value-result
       parameter;  it  should initially contain the amount of space pointed to
       by addr; 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 select(2) a socket  for  the  purposes  of  doing  an
       accept() by selecting it for read.

       accept()  returns  a non-negative descriptor for the accepted socket on
       success.  On failure, it returns -1 and  sets  errno  to  indicate  the

       EBADF          The descriptor is invalid.

       EFAULT         The addr parameter is not in a writable part of the user
                      address space.

       ENOTSOCK       The descriptor references a file, not a socket.

       EOPNOTSUPP     The referenced socket is not of type SOCK_STREAM.

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

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

                                21 January 1990                      ACCEPT(2)