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


NAME
       accept - accept a connection on a socket

SYNOPSIS
       #include (lt)sys/types.h(gt)

       #include (lt)sys/socket.h(gt)

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

DESCRIPTION
       The  argument  s  is  a  socket that has been created with
       socket(2), bound to an address with bind(2), and  is  lis-
       tening  for  connections  after  a  listen(2).  The accept
       function extracts the  first  connection  request  on  the
       queue  of  pending  connections, creates a new socket with
       the same properties of s and allocates a new file descrip-
       tor for the socket.  If no pending connections are present
       on the queue, and the socket is not marked  as  non-block-
       ing,  accept  blocks the caller until a connection is pre-
       sent.  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 may not  be
       used  to  accept  more connections.  The original socket s
       remains open.

       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 param-
       eter  is  determined by the domain in which the communica-
       tion is occurring.  The addrlen is a value-result  parame-
       ter;  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.

       For certain protocols which require an explicit  confirma-
       tion,  such as ISO or DATAKIT, accept can be thought of as
       merely dequeuing  the  next  connection  request  and  not
       implying  confirmation.   Confirmation can be implied by a
       normal read or write  on  the  new  file  descriptor,  and
       rejection can be implied by closing the new socket.

       One  can  obtain user connection request data without con-
       firming the connection by issuing a recvmsg(2)  call  with
       an  msg_iovlen  of  0 and a non-zero msg_controllen, or by
       issuing a getsockopt(2) request.  Similarly, one can  pro-
       vide  user  connection  rejection information by issuing a
       sendmsg(2) call with providing only the  control  informa-
       tion, or by calling setsockopt(2).



BSD Man Page               24 July 1993                         1





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


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

ERRORS
       EBADF  The descriptor is invalid.

       ENOTSOCK
              The descriptor references a file, not a socket.

       EOPNOTSUPP
              The referenced socket is not of type SOCK_STREAM.

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

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

CONFORMING TO
       SVr4,  4.4BSD  (the  accept function first appeared in BSD
       4.2).  SVr4 documents an additional EOPNOTSUPP error  con-
       dition.

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





























BSD Man Page               24 July 1993                         2



Please look at the man2html translation issues.
man2html.pl Version 1.1, Copyright 1997, 1998 by Richard Dawe