summaryrefslogtreecommitdiffstats
path: root/man2/bind.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/bind.2')
-rw-r--r--man2/bind.2214
1 files changed, 214 insertions, 0 deletions
diff --git a/man2/bind.2 b/man2/bind.2
new file mode 100644
index 000000000..9b3c5a258
--- /dev/null
+++ b/man2/bind.2
@@ -0,0 +1,214 @@
+.\" Hey Emacs! This file is -*- nroff -*- source.
+.\"
+.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
+.\" Portions extracted from /usr/include/sys/socket.h, which does not have
+.\" any authorship information in it. It is probably available under the GPL.
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\"
+.\" Other portions are from the 6.9 (Berkeley) 3/10/91 man page:
+.\"
+.\" Copyright (c) 1983 The Regents of the University of California.
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" Modified Mon Oct 21 23:05:29 EDT 1996 by Eric S. Raymond <esr@thyrsus.com>
+.\" Modified 1998 by Andi Kleen
+.\" $Id: bind.2,v 1.3 1999/04/23 19:56:07 freitag Exp $
+.\" Modified 2004-06-23 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
+.\"
+.TH BIND 2 2004-06-23 "Linux 2.6.7" "Linux Programmer's Manual"
+.SH NAME
+bind \- bind a name to a socket
+.SH SYNOPSIS
+.B #include <sys/types.h>
+.br
+.B #include <sys/socket.h>
+.sp
+.BI "int bind(int " sockfd ", struct sockaddr *" my_addr ", socklen_t " addrlen );
+.SH DESCRIPTION
+.B bind
+gives the socket
+.I sockfd
+the local address
+.IR my_addr .
+.I my_addr
+is
+.I addrlen
+bytes long. Traditionally, this is called \(lqassigning a name to a socket.\(rq
+When a socket is created with
+.BR socket (2),
+it exists in a name space (address family) but has no name assigned.
+.PP
+It is normally necessary to assign a local address using
+.B bind
+before a
+.B SOCK_STREAM
+socket may receive connections (see
+.BR accept (2)).
+
+The rules used in name binding vary between address families. Consult
+the manual entries in Section 7 for detailed information. For
+.B AF_INET
+see
+.BR ip (7),
+for
+.B AF_UNIX
+see
+.BR unix (7),
+for
+.B AF_APPLETALK
+see
+.BR ddp (7),
+for
+.B AF_PACKET
+see
+.BR packet (7),
+for
+.B AF_X25
+see
+.BR x25 (7)
+and for
+.B AF_NETLINK
+see
+.BR netlink (7).
+
+.SH "RETURN VALUE"
+On success, zero is returned. On error, \-1 is returned, and
+.I errno
+is set appropriately.
+.SH ERRORS
+.TP
+.B EACCES
+The address is protected, and the user is not the super-user.
+.TP
+.B EBADF
+.I sockfd
+is not a valid descriptor.
+.TP
+.B EINVAL
+The socket is already bound to an address. This may change in the future:
+see
+.I linux/unix/sock.c
+for details.
+.TP
+.B ENOTSOCK
+Argument is a descriptor for a file, not a socket.
+.PP
+The following errors are specific to UNIX domain
+.RB ( AF_UNIX )
+sockets:
+.TP
+.B EACCES
+Search permission is denied on a component of the path prefix.
+(See also
+.BR path_resolution (2).)
+.TP
+.B EFAULT
+.I my_addr
+points outside the user's accessible address space.
+.TP
+.B EINVAL
+The
+.I addrlen
+is wrong, or the socket was not in the
+.B AF_UNIX
+family.
+.TP
+.B ELOOP
+Too many symbolic links were encountered in resolving
+.IR my_addr .
+.TP
+.B ENAMETOOLONG
+.I my_addr
+is too long.
+.TP
+.B ENOENT
+The file does not exist.
+.TP
+.B ENOMEM
+Insufficient kernel memory was available.
+.TP
+.B ENOTDIR
+A component of the path prefix is not a directory.
+.TP
+.B EROFS
+The socket inode would reside on a read-only file system.
+.SH BUGS
+The transparent proxy options are not described.
+.SH "CONFORMING TO"
+SVr4, 4.4BSD (the
+.B bind
+function first appeared in BSD 4.2). SVr4 documents additional
+.BR EADDRNOTAVAIL ,
+.BR EADDRINUSE ,
+and
+.B ENOSR
+general error conditions, and
+additional
+.B EIO
+and
+.B EISDIR
+Unix-domain error conditions.
+.SH NOTE
+The third argument of
+.B bind
+is in reality an int (and this is what BSD 4.* and libc4 and libc5 have).
+Some POSIX confusion resulted in the present socklen_t, also used by glibc.
+See also
+.BR accept (2).
+.SH "SEE ALSO"
+.BR accept (2),
+.BR connect (2),
+.BR getsockname (2),
+.BR listen (2),
+.BR path_resolution (2),
+.BR socket (2),
+.BR ip (7),
+.BR socket (7)