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
     bind() 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.  bind()  requests
     that the name pointed to by name be assigned to the socket.

RETURN VALUES
     If the bind is successful, 0 is returned. A return value  of
     -1  indicates  an  error,  which is further specified in the
     global errno.

ERRORS
     The bind() call will fail if:

     EACCES
           The requested address is  protected  and  the  current
           user has inadequate permission to access it.

     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.

     EINVAL
           The socket is already bound to an address.

     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:



SunOS 5.8           Last change: 22 Oct 1999                    1






Sockets Library Functions                           bind(3SOCKET)



     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  translat-
           ing 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(5) for descriptions of the  following  attri-
     butes:

    
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |||
    | MT-Level                    | Safe                        |
    |||


SEE ALSO
     unlink(2), socket(3SOCKET), attributes(5), socket(3HEAD)

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

     The rules used in name binding  vary  between  communication
     domains.











SunOS 5.8           Last change: 22 Oct 1999                    2