BIND(2) RISC/os Reference Manual BIND(2)
NAME
bind - bind a name to a socket
SYNOPSIS
Headers
For -systype sysv:
#include <bsd/sys/types.h>
#include <bsd/sys/socket.h>
For -systype bsd43:
#include <sys/types.h>
#include <sys/socket.h>
Declarations
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 page 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.
Printed 1/15/91 Page 1
BIND(2) RISC/os Reference Manual BIND(2)
[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 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).
ORIGIN
4.3 BSD
NOTE
When these routines are used in a program which is compiled
in -systype sysv, they are not resolved by libc.a. See
intro(3-SysV) for more information.
Page 2 Printed 1/15/91