diff options
Diffstat (limited to 'man-pages-posix-2003/man3p/bind.3p')
-rw-r--r-- | man-pages-posix-2003/man3p/bind.3p | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man3p/bind.3p b/man-pages-posix-2003/man3p/bind.3p new file mode 100644 index 0000000..a8b72f0 --- /dev/null +++ b/man-pages-posix-2003/man3p/bind.3p @@ -0,0 +1,169 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "BIND" 3P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" bind +.SH PROLOG +This manual page is part of the POSIX Programmer's Manual. +The Linux implementation of this interface may differ (consult +the corresponding Linux manual page for details of Linux behavior), +or the interface may not be implemented on Linux. +.SH NAME +bind \- bind a name to a socket +.SH SYNOPSIS +.LP +\fB#include <sys/socket.h> +.br +.sp +int bind(int\fP \fIsocket\fP\fB, const struct sockaddr *\fP\fIaddress\fP\fB, +.br +\ \ \ \ \ \ socklen_t\fP \fIaddress_len\fP\fB); +.br +\fP +.SH DESCRIPTION +.LP +The \fIbind\fP() function shall assign a local socket address \fIaddress\fP +to a socket identified by descriptor \fIsocket\fP +that has no local socket address assigned. Sockets created with the +\fIsocket\fP() function +are initially unnamed; they are identified only by their address family. +.LP +The \fIbind\fP() function takes the following arguments: +.TP 7 +\fIsocket\fP +Specifies the file descriptor of the socket to be bound. +.TP 7 +\fIaddress\fP +Points to a \fBsockaddr\fP structure containing the address to be +bound to the socket. The length and format of the address +depend on the address family of the socket. +.TP 7 +\fIaddress_len\fP +Specifies the length of the \fBsockaddr\fP structure pointed to by +the \fIaddress\fP argument. +.sp +.LP +The socket specified by \fIsocket\fP may require the process to have +appropriate privileges to use the \fIbind\fP() +function. +.SH RETURN VALUE +.LP +Upon successful completion, \fIbind\fP() shall return 0; otherwise, +-1 shall be returned and \fIerrno\fP set to indicate the +error. +.SH ERRORS +.LP +The \fIbind\fP() function shall fail if: +.TP 7 +.B EADDRINUSE +The specified address is already in use. +.TP 7 +.B EADDRNOTAVAIL +The specified address is not available from the local machine. +.TP 7 +.B EAFNOSUPPORT +The specified address is not a valid address for the address family +of the specified socket. +.TP 7 +.B EBADF +The \fIsocket\fP argument is not a valid file descriptor. +.TP 7 +.B EINVAL +The socket is already bound to an address, and the protocol does not +support binding to a new address; or the socket has been +shut down. +.TP 7 +.B ENOTSOCK +The \fIsocket\fP argument does not refer to a socket. +.TP 7 +.B EOPNOTSUPP +The socket type of the specified socket does not support binding to +an address. +.sp +.LP +If the address family of the socket is AF_UNIX, then \fIbind\fP() +shall fail if: +.TP 7 +.B EACCES +A component of the path prefix denies search permission, or the requested +name requires writing in a directory with a mode that +denies write permission. +.TP 7 +.B EDESTADDRREQ \fRor\fP EISDIR +The \fIaddress\fP argument is a null pointer. +.TP 7 +.B EIO +An I/O error occurred. +.TP 7 +.B ELOOP +A loop exists in symbolic links encountered during resolution of the +pathname in \fIaddress\fP. +.TP 7 +.B ENAMETOOLONG +A component of a pathname exceeded {NAME_MAX} characters, or an entire +pathname exceeded {PATH_MAX} characters. +.TP 7 +.B ENOENT +A component of the pathname does not name an existing file or the +pathname is an empty string. +.TP 7 +.B ENOTDIR +A component of the path prefix of the pathname in \fIaddress\fP is +not a directory. +.TP 7 +.B EROFS +The name would reside on a read-only file system. +.sp +.LP +The \fIbind\fP() function may fail if: +.TP 7 +.B EACCES +The specified address is protected and the current user does not have +permission to bind to it. +.TP 7 +.B EINVAL +The \fIaddress_len\fP argument is not a valid length for the address +family. +.TP 7 +.B EISCONN +The socket is already connected. +.TP 7 +.B ELOOP +More than {SYMLOOP_MAX} symbolic links were encountered during resolution +of the pathname in \fIaddress\fP. +.TP 7 +.B ENAMETOOLONG +Pathname resolution of a symbolic link produced an intermediate result +whose length exceeds {PATH_MAX}. +.TP 7 +.B ENOBUFS +Insufficient resources were available to complete the call. +.sp +.LP +\fIThe following sections are informative.\fP +.SH EXAMPLES +.LP +None. +.SH APPLICATION USAGE +.LP +An application program can retrieve the assigned socket name with +the \fIgetsockname\fP() function. +.SH RATIONALE +.LP +None. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIconnect\fP(), \fIgetsockname\fP(), \fIlisten\fP(), \fIsocket\fP(), +the Base Definitions volume of +IEEE\ Std\ 1003.1-2001, \fI<sys/socket.h>\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |