MirBSD manpage: bind(2)

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


     bind - bind a name to a socket


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

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


     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 as-
     signed. bind() requests that name be assigned to the socket. namelen in-
     dicates the amount of space pointed to by name, in bytes.


     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

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


     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.


     The bind() call will fail if:

     [EBADF]       s is not a valid descriptor.

     [ENOTSOCK]    s is not a socket.

                   The specified address is not available from the local

     [EADDRINUSE]  The specified address is already in use.

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

     [EINVAL]      The family of the socket and that requested in name-
                   >sa_family are not equivalent.

     [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 part of the user ad-
                   dress space.

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

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

                   A component of a pathname exceeded {NAME_MAX} characters,
                   or an entire path name exceeded {PATH_MAX} characters.

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

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

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

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

     [EISDIR]      An empty pathname was specified.


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


     The bind() function call appeared in 4.2BSD.

MirBSD #10-current            February 15, 1999                              1

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung