Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ accept.xs(3N-xs) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bind(3N-xs)

connect(3N-xs)

listen(3N-xs)

socket(3N-xs)

accept(3N-xs)                 (X/OPEN SOCKETS)                accept(3N-xs)

NAME
     accept - accept a new connection on a socket

SYNOPSIS
     cc [flag ...] file ... -lxnet [library ...]

     #include <sys/socket.h>

     int accept(int socket, struct sockaddr *address,
                sizet *addresslen);

DESCRIPTION
     The accept function extracts the first connection on the queue of
     pending connections, creates a new socket with the same socket type
     protocol and address family as the specified socket, and allocates a
     new file descriptor for that socket.

     The function takes the following arguments:

     socket          Specifies a socket that was created with socket, has
                     been bound to an address with bind, and has issued a
                     successful call to listen.

     address         Either a null pointer, or a pointer to a sockaddr
                     structure where the address of the connecting socket
                     will be returned.

     addresslen     Points to a sizet which on input specifies the length
                     of the supplied sockaddr structure, and on output
                     specifies the length of the stored address.

     If address is not a null pointer, the address of the peer for the
     accepted connection is stored in the sockaddr structure pointed to by
     address, and the length of this address is stored in the object
     pointed to by addresslen.

     If the actual length of the address is greater than the length of the
     supplied sockaddr structure, the stored address will be truncated.

     If the protocol permits connections by unbound clients, and the peer
     is not bound, then the value stored in the object pointed to by
     address is unspecified.

     If the listen queue is empty of connection requests and ONONBLOCK is
     not set on the file descriptor for the socket, accept will block until
     a connection is present. If the listen queue is empty of connection
     requests and ONONBLOCK is set on the file descriptor for the socket,
     accept will fail and set errno to EWOULDBLOCK or EAGAIN.

     The accepted socket cannot itself accept more connections. The origi-
     nal socket remains open and can accept more connections.




Page 1                       Reliant UNIX 5.44                Printed 11/98

accept(3N-xs)                 (X/OPEN SOCKETS)                accept(3N-xs)

RETURN VALUE
     Upon successful completion, accept returns the non-negative file
     descriptor of the accepted socket. Otherwise, -1 is returned and errno
     is set to indicate the error.

ERRORS
     The accept function will fail if:

     EBADF           The socket argument is not a valid file descriptor.

     ECONNABORTED    A connection has been aborted.

     ENOTSOCK        The socket argument does not refer to a socket.

     EOPNOTSUPP      The socket type of the specified socket does not sup-
                     port accepting connections.

     EAGAIN or EWOULDBLOCK
                     ONONBLOCK is set for the socket file descriptor and
                     no connections are present to be accepted.

     EINTR           The accept function was interrupted by a signal that
                     was caught before a valid connection arrived.

     EINVAL          The socket is not accepting connections.

     EMFILE          {OPENMAX} file descriptors are currently open in the
                     calling process.

     ENFILE          The maximum number of file descriptors in the system
                     are already open.

     The accept function may fail if:

     ENOMEM          There was insufficient memory available to complete
                     the operation.

     ENOBUFS         No buffer space is available.

     ENOSR           There was insufficient STREAMS resources available to
                     complete the operation.

     EPROTO          A protocol error has occurred; for example, the
                     STREAMS protocol stack has not been initialized.

APPLICATION USAGE
     When a connection is available, select will indicate that the file
     descriptor for the socket is ready for reading.

SEE ALSO
     bind(3N-xs), connect(3N-xs), listen(3N-xs), socket(3N-xs).



Page 2                       Reliant UNIX 5.44                Printed 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026