BIND(3SOCKET)             Sockets Library Functions            BIND(3SOCKET)
NAME
       bind - bind a name to a socket
SYNOPSIS
       cc [ 
flag ... ] 
file ... 
-lsocket  -lnsl  [ 
library ... ]
       #include <sys/types.h>
       #include <sys/socket.h>       
int bind(
int s, 
const struct sockaddr *name, 
int namelen);
DESCRIPTION
       The 
bind() function assigns a name to an unnamed socket. When a
       socket is created with 
socket(3SOCKET), it exists in a name space
       (address family) but has no name assigned. The 
bind() function
       requests that the name pointed to by 
name be assigned to the socket.
RETURN VALUES
       Upon successful completion 
0 is returned. Otherwise, 
-1 is returned
       and 
errno is set to indicate the error.
ERRORS
       The 
bind() function will fail if:       
EACCES                        The requested address is protected, and                        
{PRIV_NET_PRIVADDR} is not asserted in the effective
                        set of the current process.       
EADDRINUSE                        The specified address is already in use.       
EADDRNOTAVAIL                        The specified address is not available on the local
                        machine.       
EBADF                        s is not a valid descriptor.       
EINVAL                        namelen is not the size of a valid address for the
                        specified address family.
                        The socket is already bound to an address.
                        Socket options are inconsistent with port
                        attributes.       
ENOSR                        There were insufficient 
STREAMS resources for the
                        operation to complete.       
ENOTSOCK                        s is a descriptor for a file, not a socket.
       The following errors are specific to binding names in the UNIX
       domain:       
EACCES                  Search permission is denied for a component of the path
                  prefix of the pathname in 
name.       
EIO                  An I/O error occurred while making the directory entry or
                  allocating the inode.       
EISDIR                  A null pathname was specified.       
ELOOP                  Too many symbolic links were encountered in translating
                  the pathname in 
name.       
ENOENT                  A component of the path prefix of the pathname in 
name                  does not exist.       
ENOTDIR                  A component of the path prefix of the pathname in 
name is
                  not a directory.       
EROFS                  The inode would reside on a read-only file system.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +---------------+-----------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE |
       +---------------+-----------------+
       |MT-Level       | Safe            |
       +---------------+-----------------+
SEE ALSO
       unlink(2), 
socket.h(3HEAD), 
sockaddr(3SOCKET), 
socket(3SOCKET),       
attributes(7), 
privileges(7)NOTES
       Binding a name in the UNIX domain creates a socket in the file system
       that must be deleted by the caller when it is no longer needed by
       using 
unlink(2).
       The rules used in name binding vary between communication domains.
                                May 11, 2009                   BIND(3SOCKET)