]> 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
 .\"
 .\"
 .\"     @(#)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
 .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
 .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
 .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.
 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
 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
 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
 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
 .Sh ERRORS
 The
 .Fn bind
-call will fail if:
+system call will fail if:
 .Bl -tag -width Er
 .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 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
 .It Bq Er EFAULT
 The
-.Fa name
+.Fa address
 parameter is not in a valid part of the user
 address space.
 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
 .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 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
 .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 EROFS
 The name would reside on a read-only file system.
-.It Bq Er EISDIR
-An empty pathname was specified.
 .El
 .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 ,
 .Sh SEE ALSO
 .Xr connect 2 ,
+.Xr connectx 2 ,
+.Xr getsockname 2 ,
 .Xr listen 2 ,
 .Xr socket 2 ,
 .Xr listen 2 ,
 .Xr socket 2 ,
-.Xr getsockname 2
+.Xr compat 5
 .Sh HISTORY
 The
 .Fn bind
 .Sh HISTORY
 The
 .Fn bind