BIND(2) | System Calls Manual | BIND(2) |
bind
— assign a
local protocol address to a socket
Standard C Library (libc, -lc)
#include
<sys/socket.h>
int
bind
(int
s, const struct sockaddr
*addr, socklen_t
addrlen);
The
bind
()
system call assigns the local protocol address to a socket. When a socket is
created with socket(2) it exists in an address family
space but has no protocol address assigned. The
bind
() system call requests that
addr be assigned to the socket.
Binding an address 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 address binding vary between communication domains. Consult the manual entries in section 4 for detailed information.
For maximum portability, you should always zero the
socket address structure before populating it and passing it to
bind
().
The bind
() function returns the
value 0 if successful; otherwise the value -1 is returned and
the global variable errno is set to indicate the
error.
The bind
() system call will fail if:
EAGAIN
]EBADF
]EINVAL
]EINVAL
]ENOTSOCK
]EADDRNOTAVAIL
]EADDRINUSE
]EAFNOSUPPORT
]EACCES
]EFAULT
]The following errors are specific to binding addresses in the UNIX domain.
ENOTDIR
]ENAMETOOLONG
]ENOENT
]ELOOP
]EIO
]EROFS
]EISDIR
]The bind
() system call appeared in
4.2BSD.
August 18, 2016 | Debian |