xref: /original-bsd/lib/libc/sys/bind.2 (revision d272e02a)
1.\" Copyright (c) 1983 The Regents of the University of California.
2.\" All rights reserved.
3.\"
4.\" %sccs.include.redist.man%
5.\"
6.\"     @(#)bind.2	6.9 (Berkeley) 03/10/91
7.\"
8.Dd
9.Dt BIND 2
10.Os BSD 4.2
11.Sh NAME
12.Nm bind
13.Nd bind a name to a socket
14.Sh SYNOPSIS
15.Fd #include <sys/types.h>
16.Fd #include <sys/socket.h>
17.Ft int
18.Fn bind "int s" "struct sockaddr *name" "int namelen"
19.Sh DESCRIPTION
20.Fn Bind
21assigns a name to an unnamed socket.
22When a socket is created
23with
24.Xr socket 2
25it exists in a name space (address family)
26but has no name assigned.
27.Fn Bind
28requests that
29.Fa name
30be assigned to the socket.
31.Sh NOTES
32Binding a name in the UNIX domain creates a socket in the file
33system that must be deleted by the caller when it is no longer
34needed (using
35.Xr unlink 2 ) .
36.Pp
37The rules used in name binding vary between communication domains.
38Consult the manual entries in section 4 for detailed information.
39.Sh RETURN VALUES
40If the bind is successful, a 0 value is returned.
41A return value of -1 indicates an error, which is
42further specified in the global
43.Va errno .
44.Sh ERRORS
45The
46.Fn bind
47call will fail if:
48.Bl -tag -width EADDRNOTAVA
49.It Bq Er EBADF
50.Fa S
51is not a valid descriptor.
52.It Bq Er ENOTSOCK
53.Fa S
54is not a socket.
55.It Bq Er EADDRNOTAVAIL
56The specified address is not available from the local machine.
57.It Bq Er EADDRINUSE
58The specified address is already in use.
59.It Bq Er EINVAL
60The socket is already bound to an address.
61.It Bq Er EACCES
62The requested address is protected, and the current user
63has inadequate permission to access it.
64.It Bq Er EFAULT
65The
66.Fa name
67parameter is not in a valid part of the user
68address space.
69.El
70.Pp
71The following errors are specific to binding names in the UNIX domain.
72.Bl -tag -width EADDRNOTAVA
73.It Bq Er ENOTDIR
74A component of the path prefix is not a directory.
75.It Bq Er EINVAL
76The pathname contains a character with the high-order bit set.
77.It Bq Er ENAMETOOLONG
78A component of a pathname exceeded 255 characters,
79or an entire path name exceeded 1023 characters.
80.It Bq Er ENOENT
81A prefix component of the path name does not exist.
82.It Bq Er ELOOP
83Too many symbolic links were encountered in translating the pathname.
84.It Bq Er EIO
85An I/O error occurred while making the directory entry or allocating the inode.
86.It Bq Er EROFS
87The name would reside on a read-only file system.
88.It Bq Er EISDIR
89An empty pathname was specified.
90.El
91.Sh SEE ALSO
92.Xr connect 2 ,
93.Xr listen 2 ,
94.Xr socket 2 ,
95.Xr getsockname 2
96.Sh HISTORY
97The
98.Nm
99function call appeared in
100.Bx 4.2 .
101