]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/man/man2/bind.2
xnu-3248.20.55.tar.gz
[apple/xnu.git] / bsd / man / man2 / bind.2
index 9c4404cdd65cd511a7ada0a37bde8bfbc19aeb75..8374320dabc531ec6cea2beed4667018986d06cc 100644 (file)
 .\"
 .\"     @(#)bind.2     8.1 (Berkeley) 6/4/93
 .\"
-.Dd June 4, 1993
+.Dd March 18, 2015
 .Dt BIND 2
 .Os BSD 4.2
 .Sh NAME
 .Nm bind
 .Nd bind a name to a socket
 .Sh SYNOPSIS
-.Fd #include <sys/types.h>
 .Fd #include <sys/socket.h>
 .Ft int
-.Fn bind "int s" "const struct sockaddr *name" "int namelen"
+.Fo bind
+.Fa "int socket"
+.Fa "const struct sockaddr *address"
+.Fa "socklen_t address_len"
+.Fc
 .Sh DESCRIPTION
-.Fn Bind
+.Fn bind
 assigns a name to an unnamed socket.
 When a socket is created 
 with
 .Xr socket 2
 it exists in a name space (address family)
 but has no name assigned.
-.Fn Bind
+.Fn bind
 requests that
-.Fa name
+.Fa address
 be assigned to the socket.
 .Sh NOTES
 Binding a name in the UNIX domain creates a socket in the file
@@ -65,63 +68,115 @@ needed (using
 The rules used in name binding vary between communication domains.
 Consult the manual entries in section 4 for detailed information.
 .Sh RETURN VALUES
-If the bind is successful, a 0 value is returned.
-A return value of -1 indicates an error, which is
-further specified in the global
-.Va errno .
+Upon successful completion, a value of 0 is returned.
+Otherwise, a value of -1 is returned and the global integer variable
+.Va errno
+is set to indicate the error.
 .Sh ERRORS
 The
 .Fn bind
-call will fail if:
+system call will fail if:
 .Bl -tag -width Er
-.It Bq Er EBADF
-.Fa S
-is not a valid descriptor.
-.It Bq Er ENOTSOCK
-.Fa S
-is not a socket.
-.It Bq Er EADDRNOTAVAIL
-The specified address is not available from the local machine.
-.It Bq Er EADDRINUSE
-The specified address is already in use.
-.It Bq Er EINVAL
-The socket is already bound to an address.
+.\" ==========
 .It Bq Er EACCES
 The requested address is protected, and the current user
 has inadequate permission to access it.
+.\" ==========
+.It Bq Er EADDRINUSE
+The specified address is already in use.
+.\" ==========
+.It Bq Er EADDRNOTAVAIL
+The specified address is not available from the local machine.
+.\" ==========
+.It Bq Er EAFNOSUPPORT
+.Fa address
+is not valid for the address family of
+.Fa socket .
+.\" ==========
+.It Bq Er EBADF
+.Fa socket
+is not a valid file descriptor.
+.\" ==========
+.It Bq Er EDESTADDRREQ
+.Fa socket
+is a null pointer.
+.\" ==========
 .It Bq Er EFAULT
 The
-.Fa name
+.Fa address
 parameter is not in a valid part of the user
 address space.
+.\" ==========
+.It Bq Er EINVAL
+.Fa socket
+is already bound to an address
+and the protocol does not support binding to a new address.
+Alternatively,
+.Fa socket
+may have been shut down.
+.\" ==========
+.It Bq Er ENOTSOCK
+.Fa socket
+does not refer to a socket.
+.\" ==========
+.It Bq Er EOPNOTSUPP
+.Fa socket
+is not of a type that can be bound to an address.
 .El
 .Pp
 The following errors are specific to binding names in the UNIX domain.
 .Bl -tag -width Er
-.It Bq Er ENOTDIR
-A component of the path prefix is not a directory.
+.\" ==========
+.It Bq Er EACCES
+A component of the path prefix does not allow searching
+or the node's parent directory denies write permission.
+.\" ==========
+.It Bq Er EEXIST
+A file already exists at the pathname.
+.Xr unlink 2
+it first.
+.\" ==========
+.It Bq Er EIO
+An I/O error occurred while making the directory entry
+or allocating the inode.
+.\" ==========
+.It Bq Er EISDIR
+An empty pathname was specified.
+.\" ==========
+.It Bq Er ELOOP
+Too many symbolic links were encountered in translating the pathname.
+This is taken to be indicative of a looping symbolic link.
+.\" ==========
 .It Bq Er ENAMETOOLONG
 A component of a pathname exceeded 
 .Dv {NAME_MAX}
 characters, or an entire path name exceeded 
 .Dv {PATH_MAX}
 characters.
+.\" ==========
 .It Bq Er ENOENT
-A prefix component of the path name does not exist.
-.It Bq Er ELOOP
-Too many symbolic links were encountered in translating the pathname.
-.It Bq Er EIO
-An I/O error occurred while making the directory entry or allocating the inode.
+A component of the path name does not refer to an existing file.
+.\" ==========
+.It Bq Er ENOTDIR
+A component of the path prefix is not a directory.
+.\" ==========
 .It Bq Er EROFS
 The name would reside on a read-only file system.
-.It Bq Er EISDIR
-An empty pathname was specified.
 .El
+.Sh LEGACY SYNOPSIS
+.Fd #include <sys/types.h>
+.Fd #include <sys/socket.h>
+.Pp
+The include file
+.In sys/types.h
+is necessary.
 .Sh SEE ALSO
 .Xr connect 2 ,
+.Xr connectx 2 ,
+.Xr getsockname 2 ,
 .Xr listen 2 ,
 .Xr socket 2 ,
-.Xr getsockname 2
+.Xr compat 5
 .Sh HISTORY
 The
 .Fn bind