]> git.saurik.com Git - apple/xnu.git/blob - bsd/man/man2/listen.2
xnu-3248.20.55.tar.gz
[apple/xnu.git] / bsd / man / man2 / listen.2
1 .\" $OpenBSD: listen.2,v 1.2 1996/03/19 23:15:16 niklas Exp $
2 .\" $NetBSD: listen.2,v 1.7 1996/02/16 20:38:45 phil Exp $
3 .\"
4 .\" Copyright (c) 1983, 1991, 1993
5 .\" The Regents of the University of California. All rights reserved.
6 .\"
7 .\" Redistribution and use in source and binary forms, with or without
8 .\" modification, are permitted provided that the following conditions
9 .\" are met:
10 .\" 1. Redistributions of source code must retain the above copyright
11 .\" notice, this list of conditions and the following disclaimer.
12 .\" 2. Redistributions in binary form must reproduce the above copyright
13 .\" notice, this list of conditions and the following disclaimer in the
14 .\" documentation and/or other materials provided with the distribution.
15 .\" 3. All advertising materials mentioning features or use of this software
16 .\" must display the following acknowledgement:
17 .\" This product includes software developed by the University of
18 .\" California, Berkeley and its contributors.
19 .\" 4. Neither the name of the University nor the names of its contributors
20 .\" may be used to endorse or promote products derived from this software
21 .\" without specific prior written permission.
22 .\"
23 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 .\" SUCH DAMAGE.
34 .\"
35 .\" @(#)listen.2 8.2 (Berkeley) 12/11/93
36 .\"
37 .Dd March 18, 2015
38 .Dt LISTEN 2
39 .Os BSD 4.2
40 .Sh NAME
41 .Nm listen
42 .Nd listen for connections on a socket
43 .Sh SYNOPSIS
44 .Fd #include <sys/socket.h>
45 .Ft int
46 .Fo listen
47 .Fa "int socket"
48 .Fa "int backlog"
49 .Fc
50 .Sh DESCRIPTION
51 Creation of socket-based connections requires several operations.
52 First, a socket is created with
53 .Xr socket 2 .
54 Next, a willingness to accept incoming connections and
55 a queue limit for incoming connections are specified with
56 .Fn listen .
57 Finally, the connections are
58 accepted with
59 .Xr accept 2 .
60 The
61 .Fn listen
62 call applies only to sockets of type
63 .Dv SOCK_STREAM.
64 .\"or
65 .\".Dv SOCK_SEQPACKET.
66 .Pp
67 The
68 .Fa backlog
69 parameter defines the maximum length
70 for the queue of pending connections.
71 If a connection
72 request arrives with the queue full,
73 the client may receive an error with an indication of
74 .Er ECONNREFUSED .
75 Alternatively, if the underlying protocol supports retransmission,
76 the request may be ignored so that retries may succeed.
77 .Sh RETURN VALUES
78 .Rv -std listen
79 .Sh ERRORS
80 .Fn Listen
81 will fail if:
82 .Bl -tag -width Er
83 .\" ==========
84 .It Bq Er EACCES
85 The current process has insufficient privileges.
86 .\" ==========
87 .It Bq Er EBADF
88 The argument
89 .Fa socket
90 is not a valid file descriptor.
91 .\" ==========
92 .It Bq Er EDESTADDRREQ
93 The socket is not bound to a local address
94 and the protocol does not support listening on an unbound socket.
95 .\" ==========
96 .It Bq Er EINVAL
97 .Fa socket
98 is already connected.
99 .\" ==========
100 .It Bq Er ENOTSOCK
101 The argument
102 .Fa socket
103 does not reference a socket.
104 .\" ==========
105 .It Bq Er EOPNOTSUPP
106 The socket is not of a type that supports the operation
107 .Fn listen .
108 .El
109 .Sh SEE ALSO
110 .Xr accept 2 ,
111 .Xr connect 2 ,
112 .Xr connectx 2 ,
113 .Xr socket 2
114 .Sh BUGS
115 The
116 .Fa backlog
117 is currently limited (silently) to 128.
118 .Sh HISTORY
119 The
120 .Fn listen
121 function call appeared in
122 .Bx 4.2 .