Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ bind(2) — 4D1 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

connect(2)

listen(2)

socket(2)



     BIND(2)                                                   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
          Bind assigns a name to an unnamed socket.  When a socket is
          created with socket(2) it exists in a name space (address
          family) but has no name assigned.  Bind requests that name
          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 unlink(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 errno.

     ERRORS
          The bind 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
                              permission to access it.

          [EFAULT]            The name parameter is not in a valid



     Page 1                                        (last mod. 8/20/87)





     BIND(2)                                                   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
                         characters, 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
                         directory 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)

     NOTE
          The primitives documented on this manual page are system
          calls, but unlike most system calls they are not resolved by
          libc.  To compile and link a program that makes these calls,
          follow the procedures for section (3B) routines as described
          in intro(3).

     ORIGIN
          4.3 BSD














     Page 2                                        (last mod. 8/20/87)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026