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).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/.