X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/9bccf70c0258c7cac2dcb80011b2a964d884c552..4bd07ac2140668789aa3ee8ec4dde4a3e0a3bba5:/bsd/man/man2/bind.2 diff --git a/bsd/man/man2/bind.2 b/bsd/man/man2/bind.2 index 9c4404cdd..8374320da 100644 --- a/bsd/man/man2/bind.2 +++ b/bsd/man/man2/bind.2 @@ -33,28 +33,31 @@ .\" .\" @(#)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 .Fd #include .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 +.Fd #include +.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