xref: /xnu-8796.101.5/bsd/man/man2/bind.2 (revision aca3beaa3dfbd42498b42c5e5ce20a938e6554e5)
1*aca3beaaSApple OSS Distributions.\"	$NetBSD: bind.2,v 1.8 1995/10/12 15:40:46 jtc Exp $
2*aca3beaaSApple OSS Distributions.\"
3*aca3beaaSApple OSS Distributions.\" Copyright (c) 1983, 1993
4*aca3beaaSApple OSS Distributions.\"	The Regents of the University of California.  All rights reserved.
5*aca3beaaSApple OSS Distributions.\"
6*aca3beaaSApple OSS Distributions.\" Redistribution and use in source and binary forms, with or without
7*aca3beaaSApple OSS Distributions.\" modification, are permitted provided that the following conditions
8*aca3beaaSApple OSS Distributions.\" are met:
9*aca3beaaSApple OSS Distributions.\" 1. Redistributions of source code must retain the above copyright
10*aca3beaaSApple OSS Distributions.\"    notice, this list of conditions and the following disclaimer.
11*aca3beaaSApple OSS Distributions.\" 2. Redistributions in binary form must reproduce the above copyright
12*aca3beaaSApple OSS Distributions.\"    notice, this list of conditions and the following disclaimer in the
13*aca3beaaSApple OSS Distributions.\"    documentation and/or other materials provided with the distribution.
14*aca3beaaSApple OSS Distributions.\" 3. All advertising materials mentioning features or use of this software
15*aca3beaaSApple OSS Distributions.\"    must display the following acknowledgement:
16*aca3beaaSApple OSS Distributions.\"	This product includes software developed by the University of
17*aca3beaaSApple OSS Distributions.\"	California, Berkeley and its contributors.
18*aca3beaaSApple OSS Distributions.\" 4. Neither the name of the University nor the names of its contributors
19*aca3beaaSApple OSS Distributions.\"    may be used to endorse or promote products derived from this software
20*aca3beaaSApple OSS Distributions.\"    without specific prior written permission.
21*aca3beaaSApple OSS Distributions.\"
22*aca3beaaSApple OSS Distributions.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23*aca3beaaSApple OSS Distributions.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24*aca3beaaSApple OSS Distributions.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25*aca3beaaSApple OSS Distributions.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26*aca3beaaSApple OSS Distributions.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27*aca3beaaSApple OSS Distributions.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28*aca3beaaSApple OSS Distributions.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29*aca3beaaSApple OSS Distributions.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30*aca3beaaSApple OSS Distributions.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31*aca3beaaSApple OSS Distributions.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32*aca3beaaSApple OSS Distributions.\" SUCH DAMAGE.
33*aca3beaaSApple OSS Distributions.\"
34*aca3beaaSApple OSS Distributions.\"     @(#)bind.2	8.1 (Berkeley) 6/4/93
35*aca3beaaSApple OSS Distributions.\"
36*aca3beaaSApple OSS Distributions.Dd March 18, 2015
37*aca3beaaSApple OSS Distributions.Dt BIND 2
38*aca3beaaSApple OSS Distributions.Os BSD 4.2
39*aca3beaaSApple OSS Distributions.Sh NAME
40*aca3beaaSApple OSS Distributions.Nm bind
41*aca3beaaSApple OSS Distributions.Nd bind a name to a socket
42*aca3beaaSApple OSS Distributions.Sh SYNOPSIS
43*aca3beaaSApple OSS Distributions.Fd #include <sys/socket.h>
44*aca3beaaSApple OSS Distributions.Ft int
45*aca3beaaSApple OSS Distributions.Fo bind
46*aca3beaaSApple OSS Distributions.Fa "int socket"
47*aca3beaaSApple OSS Distributions.Fa "const struct sockaddr *address"
48*aca3beaaSApple OSS Distributions.Fa "socklen_t address_len"
49*aca3beaaSApple OSS Distributions.Fc
50*aca3beaaSApple OSS Distributions.Sh DESCRIPTION
51*aca3beaaSApple OSS Distributions.Fn bind
52*aca3beaaSApple OSS Distributionsassigns a name to an unnamed socket.
53*aca3beaaSApple OSS DistributionsWhen a socket is created
54*aca3beaaSApple OSS Distributionswith
55*aca3beaaSApple OSS Distributions.Xr socket 2
56*aca3beaaSApple OSS Distributionsit exists in a name space (address family)
57*aca3beaaSApple OSS Distributionsbut has no name assigned.
58*aca3beaaSApple OSS Distributions.Fn bind
59*aca3beaaSApple OSS Distributionsrequests that
60*aca3beaaSApple OSS Distributions.Fa address
61*aca3beaaSApple OSS Distributionsbe assigned to the socket.
62*aca3beaaSApple OSS Distributions.Sh NOTES
63*aca3beaaSApple OSS DistributionsBinding a name in the UNIX domain creates a socket in the file
64*aca3beaaSApple OSS Distributionssystem that must be deleted by the caller when it is no longer
65*aca3beaaSApple OSS Distributionsneeded (using
66*aca3beaaSApple OSS Distributions.Xr unlink 2 ) .
67*aca3beaaSApple OSS Distributions.Pp
68*aca3beaaSApple OSS DistributionsThe rules used in name binding vary between communication domains.
69*aca3beaaSApple OSS DistributionsConsult the manual entries in section 4 for detailed information.
70*aca3beaaSApple OSS Distributions.Sh RETURN VALUES
71*aca3beaaSApple OSS DistributionsUpon successful completion, a value of 0 is returned.
72*aca3beaaSApple OSS DistributionsOtherwise, a value of -1 is returned and the global integer variable
73*aca3beaaSApple OSS Distributions.Va errno
74*aca3beaaSApple OSS Distributionsis set to indicate the error.
75*aca3beaaSApple OSS Distributions.Sh ERRORS
76*aca3beaaSApple OSS DistributionsThe
77*aca3beaaSApple OSS Distributions.Fn bind
78*aca3beaaSApple OSS Distributionssystem call will fail if:
79*aca3beaaSApple OSS Distributions.Bl -tag -width Er
80*aca3beaaSApple OSS Distributions.\" ==========
81*aca3beaaSApple OSS Distributions.It Bq Er EACCES
82*aca3beaaSApple OSS DistributionsThe requested address is protected, and the current user
83*aca3beaaSApple OSS Distributionshas inadequate permission to access it.
84*aca3beaaSApple OSS Distributions.\" ==========
85*aca3beaaSApple OSS Distributions.It Bq Er EADDRINUSE
86*aca3beaaSApple OSS DistributionsThe specified address is already in use.
87*aca3beaaSApple OSS Distributions.\" ==========
88*aca3beaaSApple OSS Distributions.It Bq Er EADDRNOTAVAIL
89*aca3beaaSApple OSS DistributionsThe specified address is not available from the local machine.
90*aca3beaaSApple OSS Distributions.\" ==========
91*aca3beaaSApple OSS Distributions.It Bq Er EAFNOSUPPORT
92*aca3beaaSApple OSS Distributions.Fa address
93*aca3beaaSApple OSS Distributionsis not valid for the address family of
94*aca3beaaSApple OSS Distributions.Fa socket .
95*aca3beaaSApple OSS Distributions.\" ==========
96*aca3beaaSApple OSS Distributions.It Bq Er EBADF
97*aca3beaaSApple OSS Distributions.Fa socket
98*aca3beaaSApple OSS Distributionsis not a valid file descriptor.
99*aca3beaaSApple OSS Distributions.\" ==========
100*aca3beaaSApple OSS Distributions.It Bq Er EDESTADDRREQ
101*aca3beaaSApple OSS Distributions.Fa socket
102*aca3beaaSApple OSS Distributionsis a null pointer.
103*aca3beaaSApple OSS Distributions.\" ==========
104*aca3beaaSApple OSS Distributions.It Bq Er EFAULT
105*aca3beaaSApple OSS DistributionsThe
106*aca3beaaSApple OSS Distributions.Fa address
107*aca3beaaSApple OSS Distributionsparameter is not in a valid part of the user
108*aca3beaaSApple OSS Distributionsaddress space.
109*aca3beaaSApple OSS Distributions.\" ==========
110*aca3beaaSApple OSS Distributions.It Bq Er EINVAL
111*aca3beaaSApple OSS Distributions.Fa socket
112*aca3beaaSApple OSS Distributionsis already bound to an address
113*aca3beaaSApple OSS Distributionsand the protocol does not support binding to a new address.
114*aca3beaaSApple OSS DistributionsAlternatively,
115*aca3beaaSApple OSS Distributions.Fa socket
116*aca3beaaSApple OSS Distributionsmay have been shut down.
117*aca3beaaSApple OSS Distributions.\" ==========
118*aca3beaaSApple OSS Distributions.It Bq Er ENOTSOCK
119*aca3beaaSApple OSS Distributions.Fa socket
120*aca3beaaSApple OSS Distributionsdoes not refer to a socket.
121*aca3beaaSApple OSS Distributions.\" ==========
122*aca3beaaSApple OSS Distributions.It Bq Er EOPNOTSUPP
123*aca3beaaSApple OSS Distributions.Fa socket
124*aca3beaaSApple OSS Distributionsis not of a type that can be bound to an address.
125*aca3beaaSApple OSS Distributions.El
126*aca3beaaSApple OSS Distributions.Pp
127*aca3beaaSApple OSS DistributionsThe following errors are specific to binding names in the UNIX domain.
128*aca3beaaSApple OSS Distributions.Bl -tag -width Er
129*aca3beaaSApple OSS Distributions.\" ==========
130*aca3beaaSApple OSS Distributions.It Bq Er EACCES
131*aca3beaaSApple OSS DistributionsA component of the path prefix does not allow searching
132*aca3beaaSApple OSS Distributionsor the node's parent directory denies write permission.
133*aca3beaaSApple OSS Distributions.\" ==========
134*aca3beaaSApple OSS Distributions.It Bq Er EEXIST
135*aca3beaaSApple OSS DistributionsA file already exists at the pathname.
136*aca3beaaSApple OSS Distributions.Xr unlink 2
137*aca3beaaSApple OSS Distributionsit first.
138*aca3beaaSApple OSS Distributions.\" ==========
139*aca3beaaSApple OSS Distributions.It Bq Er EIO
140*aca3beaaSApple OSS DistributionsAn I/O error occurred while making the directory entry
141*aca3beaaSApple OSS Distributionsor allocating the inode.
142*aca3beaaSApple OSS Distributions.\" ==========
143*aca3beaaSApple OSS Distributions.It Bq Er EISDIR
144*aca3beaaSApple OSS DistributionsAn empty pathname was specified.
145*aca3beaaSApple OSS Distributions.\" ==========
146*aca3beaaSApple OSS Distributions.It Bq Er ELOOP
147*aca3beaaSApple OSS DistributionsToo many symbolic links were encountered in translating the pathname.
148*aca3beaaSApple OSS DistributionsThis is taken to be indicative of a looping symbolic link.
149*aca3beaaSApple OSS Distributions.\" ==========
150*aca3beaaSApple OSS Distributions.It Bq Er ENAMETOOLONG
151*aca3beaaSApple OSS DistributionsA component of a pathname exceeded
152*aca3beaaSApple OSS Distributions.Dv {NAME_MAX}
153*aca3beaaSApple OSS Distributionscharacters, or an entire path name exceeded
154*aca3beaaSApple OSS Distributions.Dv {PATH_MAX}
155*aca3beaaSApple OSS Distributionscharacters.
156*aca3beaaSApple OSS Distributions.\" ==========
157*aca3beaaSApple OSS Distributions.It Bq Er ENOENT
158*aca3beaaSApple OSS DistributionsA component of the path name does not refer to an existing file.
159*aca3beaaSApple OSS Distributions.\" ==========
160*aca3beaaSApple OSS Distributions.It Bq Er ENOTDIR
161*aca3beaaSApple OSS DistributionsA component of the path prefix is not a directory.
162*aca3beaaSApple OSS Distributions.\" ==========
163*aca3beaaSApple OSS Distributions.It Bq Er EROFS
164*aca3beaaSApple OSS DistributionsThe name would reside on a read-only file system.
165*aca3beaaSApple OSS Distributions.El
166*aca3beaaSApple OSS Distributions.Sh LEGACY SYNOPSIS
167*aca3beaaSApple OSS Distributions.Fd #include <sys/types.h>
168*aca3beaaSApple OSS Distributions.Fd #include <sys/socket.h>
169*aca3beaaSApple OSS Distributions.Pp
170*aca3beaaSApple OSS DistributionsThe include file
171*aca3beaaSApple OSS Distributions.In sys/types.h
172*aca3beaaSApple OSS Distributionsis necessary.
173*aca3beaaSApple OSS Distributions.Sh SEE ALSO
174*aca3beaaSApple OSS Distributions.Xr connect 2 ,
175*aca3beaaSApple OSS Distributions.Xr connectx 2 ,
176*aca3beaaSApple OSS Distributions.Xr getsockname 2 ,
177*aca3beaaSApple OSS Distributions.Xr listen 2 ,
178*aca3beaaSApple OSS Distributions.Xr socket 2 ,
179*aca3beaaSApple OSS Distributions.Xr compat 5
180*aca3beaaSApple OSS Distributions.Sh HISTORY
181*aca3beaaSApple OSS DistributionsThe
182*aca3beaaSApple OSS Distributions.Fn bind
183*aca3beaaSApple OSS Distributionsfunction call appeared in
184*aca3beaaSApple OSS Distributions.Bx 4.2 .
185