4.3BSD-UWisc/man/cat2/bind.2

Compare this file to the similar file:
Show the results in this format:




BIND(2)             UNIX Programmer's Manual              BIND(2)



NAME
     bind - bind a name to a socket

SYNOPSIS
     #include <sys/types.h>
     #include <sys/socket.h>

     bind(s, name, namelen)
     int s;
     struct sockaddr *name;
     int namelen;

DESCRIPTION
     _B_i_n_d assigns a name to an unnamed socket.  When a socket is
     created with _s_o_c_k_e_t(2) it exists in a name space (address
     family) but has no name assigned.  _B_i_n_d requests that _n_a_m_e
     be assigned to the socket.

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 (using _u_n_l_i_n_k(2)).

     The rules used in name binding vary between communication
     domains.  Consult the manual entries in section 4 for
     detailed information.

RETURN VALUE
     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 _e_r_r_n_o.

ERRORS
     The _b_i_n_d call will fail if:

     [EBADF]             _S is not a valid descriptor.

     [ENOTSOCK]          _S is not a socket.

     [EADDRNOTAVAIL]     The specified address is not available
                         from the local machine.

     [EADDRINUSE]        The specified address is already in use.

     [EINVAL]            The socket is already bound to an
                         address.

     [EACCES]            The requested address is protected, and
                         the current user has inadequate permis-
                         sion to access it.

     [EFAULT]            The _n_a_m_e parameter is not in a valid



Printed 12/27/86          May 22, 1986                          1






BIND(2)             UNIX Programmer's Manual              BIND(2)



                         part of the user address space.

     The following errors are specific to binding names in the
     UNIX domain.

     [ENOTDIR]      A component of the path prefix is not a
                    directory.

     [EINVAL]       The pathname contains a character with the
                    high-order bit set.

     [ENAMETOOLONG] A component of a pathname exceeded 255 char-
                    acters, or an entire path name exceeded 1023
                    characters.

     [ENOENT]       A prefix component of the path name does not
                    exist.

     [ELOOP]        Too many symbolic links were encountered in
                    translating the pathname.

     [EIO]          An I/O error occurred while making the direc-
                    tory entry or allocating the inode.

     [EROFS]        The name would reside on a read-only file
                    system.

     [EISDIR]       A null pathname was specified.

SEE ALSO
     connect(2), listen(2), socket(2), getsockname(2)
























Printed 12/27/86          May 22, 1986                          2