Provided by:
manpages-pl-dev_20060617-1_all 
NAZWA
bind - przywiązanie nazwy do gniazda
SKŁADNIA
#include <sys/types.h>
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
OPIS
bind nadaje gniazdu, sockfd, lokalny adres my_addr. my_addr ma długość
addrlen bajtów. Tradycyjnie nazywa się to "przyznaniem gniazdu nazwy".
Gdy gniazdo jest utworzone za pomocą polecenia socket(2), istnieje ono
w przestrzeni nazw (rodzina adresów), ale nie ma przyznanej żadnej
nazwy.
Normalnie, zanim gniazdo SOCKET_STREAM będzie mogło odbierać połączenia
(zobacz accept(2)), niezbędne jest przypisanie mu lokalnego adresu za
pomocą bind.
Reguły dotyczące przywiązywania nazw są różne w różnych rodzinach
adresów. Szczegółowe informacje znajdują się na stronach podręcznika
man w sekcji 7. Dla AF_INET zobacz ip(7), dla AF_UNIX zobacz unix(7),
dla AF_APPLETALK zobacz ddp(7), dla AF_PACKET zobacz packet(7), dla
AF_X25 zobacz x25(7), a dla AF_NETLINK zobacz netlink(7).
WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu, zwracane jest zero. W przeciwnym wypadku
zwracane jest -1 i odpowiednio ustawiane errno .
BŁĘDY
EBADF sockfd nie jest prawidłowym deskryptorem.
EINVAL Gniazdo już jest przywiązane do adresu. Może to się zmienić w
przyszłości: szczegóły można znaleźć w linux/unix/sock.c.
EACCES Adres jest chroniony, a użytkownik nie jest superużytkownikiem.
ENOTSOCK
Argument jest deskryptorem pliku, a nie gniazda.
Następujące błędy odnoszą się do gniazd domeny UNIX-owej (AF_UNIX):
EINVAL Parametr addrlen jest nieprawidłowy, lub gniazdo nie należy do
rodziny AF_UNIX.
EROFS I-węzeł gniazda rezyduje na systemie plików przeznaczonym tylko
do odczytu.
EFAULT my_addr wskazuje poza dostępną dla użytkownika przestrzeń
adresową.
ENAMETOOLONG
my_addr jest zbyt długie.
ENOENT Plik nie istnieje.
ENOMEM Brak pamięci kernela.
ENOTDIR
Element składowy ścieżki nie jest katalogiem.
EACCES Brak praw do przeszukiwania dla składnika ścieżki.
ELOOP Podczas rozwiązywania my_addr napotkano zbyt wiele dowiązań
symbolicznych.
USTERKI
Nie opisano opcji przezroczystych proxy.
ZGODNE Z
SVr4, 4.4BSD (funkcja bind pojawiła się najpierw w BSD 4.2). SVr4
dokumentuje dodatkowe ogólne błędy, EADDRNOTAVAIL, EADDRINUSE i ENOSR
oraz dodatkowe błędy domeny UNIX-owej, EIO i EISDIR.
UWAGA
Trzeci argument bind jest w rzeczywistości typu int (i tak jest w BSD
4.*, libc4 i libc5). Pewne zamieszanie w POSIX doprowadziło jego
zmiany na obecny socklen_t. Zobacz także accept(2).
ZOBACZ TAKŻE
accept(2), connect(2), listen(2), socket(2), getsockname(2), ip(7),
socket(7)