Manpages

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