man pages section 3: Networking Library Functions

Exit Print View

Updated: July 2014
 
 

listen(3XNET)

Name

listen - listen for socket connections and limit the queue of incoming connections

Synopsis

cc [ flag ... ] file ... –lxnet [ library ... ]
#include <sys/socket.h>

int listen(int socket, int backlog);

Description

The listen() function marks a connection-mode socket, specified by the socket argument, as accepting connections, and limits the number of outstanding connections in the socket's listen queue to the value specified by the backlog argument.

If listen() is called with a backlog argument value that is less than 0, the function sets the length of the socket's listen queue to 0.

The implementation may include incomplete connections in the queue subject to the queue limit. The implementation may also increase the specified queue limit internally if it includes such incomplete connections in the queue subject to this limit.

Implementations may limit the length of the socket's listen queue. If backlog exceeds the implementation-dependent maximum queue length, the length of the socket's listen queue will be set to the maximum supported value.

The socket in use may require the process to have appropriate privileges to use the listen() function.

Return Values

Upon successful completions, listen() returns 0. Otherwise, −1 is returned and errno is set to indicate the error.

Errors

The listen() function will fail if:

EBADF

The socket argument is not a valid file descriptor.

EDESTADDRREQ

The socket is not bound to a local address, and the protocol does not support listening on an unbound socket.

EINVAL

The socket is already connected.

ENOTSOCK

The socket argument does not refer to a socket.

EOPNOTSUPP

The socket protocol does not support listen().

The listen() function may fail if:

EACCES

The calling process does not have the appropriate privileges.

EINVAL

The socket has been shut down.

ENOBUFS

Insufficient resources are available in the system to complete the call.

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Interface Stability
Committed
MT-Level
MT-Safe
Standard

See also

accept(3XNET), connect(3XNET), socket(3XNET), attributes(5), standards(5)