Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

connect(3N)

getsockname(3N)

listen(3N)

socket(3N)

unlink(2)






       bind(3N)                                                    bind(3N)


       NAME
             bind - bind a name to a socket

       SYNOPSIS
             cc [options] file -lsocket -lnsl
             #include <sys/types.h>
             #include <sys/socket.h>
             int bind(int s, const struct sockaddr *name, size_t namelen);

       DESCRIPTION
             bind assigns a name to an unnamed socket.  When a socket is
             created with socket, 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.

          Files
             usr/lib/locale/locale/LC_MESSAGES/uxnsl

          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 errno.

       ERRORS
             The bind call will fail if:

             EBADF               s is not a valid descriptor.

             ENOTSOCK            s is a descriptor for a file, not a
                                 socket.

             EADDRNOTAVAIL       The specified address is not available on
                                 the local machine.

             EADDRINUSE          The specified address is already in use.

             EINVAL              namelen is not the size of a valid address
                                 for the specified address family.

             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.




                           Copyright 1994 Novell, Inc.               Page 1













      bind(3N)                                                    bind(3N)


            ENOSR               There were insufficient STREAMS resources
                                for the operation to complete.

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

            ENOTDIR             A component of the path prefix of the
                                pathname in name is not a directory.

            ENOENT              A component of the path prefix of the
                                pathname in name does not exist.

            EACCES              Search permission is denied for a
                                component of the path prefix of the
                                pathname in name.

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

            EIO                 An I/O error occurred while making the
                                directory entry or allocating the inode.

            EROFS               The inode would reside on a read-only file
                                system.

            EISDIR              A null pathname was specified.

      REFERENCES
            connect(3N), getsockname(3N), listen(3N), socket(3N),
            unlink(2)

      NOTICES
            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 [see unlink(2)].

            The rules used in name binding vary between communication
            domains.

            The type of address structure passed to bind depends on the
            address family.  UNIX domain sockets (address family AF_UNIX)
            require a struct sockaddr_un as defined in sys/un.h; Internet
            domain sockets (address family AF_INET) require a struct
            sockaddr_in as defined in netinet/in.h.  Other address
            families may require other structures.  Use the structure
            appropriate to the address family; cast the structure address


                          Copyright 1994 Novell, Inc.               Page 2













       bind(3N)                                                    bind(3N)


             to a struct sockaddr* in the call to bind and pass the size of
             the structure in the namelen argument.














































                           Copyright 1994 Novell, Inc.               Page 3








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