Provided by: manpages-pl-dev_20060617-1_all bug

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)