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
Uwaga! To tłumaczenie może być nieaktualne!
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)
INFORMACJE O TŁUMACZENIU
Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia Manuali i może nie być aktualne. W razie zauważenia różnic między powyższym opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji, prosimy o zapoznanie się z oryginalną (angielską) wersją strony podręcznika za pomocą polecenia:
man --locale=C 2 bind
Prosimy o pomoc w aktualizacji stron man - więcej informacji można znaleźć pod adresem http://sourceforge.net/projects/manpages-pl/.