Provided by:
manpages-zh_1.5.1-2_all 
NAMEW稱
bind - 將一茼W字和一荇M接字綁定到一起(賦一茼W字給一荇M接字)
SYNOPSISz
#include <sys/types.h>
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
DESCRIPTIONyz
bind 為套接字 sockfd 指定本地地址 my_addr. my_addr 的長度為 addrlen
(字節).傳統的叫法是給一荇M接字分配一茼W字. 當使用 socket(2),
函數創建一荇M接字時,它存在於一茼a址空間(地址族), 但還沒有給它分配一-
茼W字
一般來說在使用 SOCK_STREAM 套接字建立連接之前總n使用 bind 為其分配一-
茈誚a地址.參見 accept(2)).
NOTES`N
這條規則用於給每茼a址族綁定不同的名稱.更多細節請參 考手冊雯7冊(man7).
對於 AF_INET 參見 ip(7), 對於 AF_UNIX 參見 unix(7), 對於 AF_APPLETALK
參見 ddp(7), 對於 AF_PACKET 參見 packet(7), 對於r AF_X25 參見 x25(7)
對於 AF_NETLINK 參見 netlink(7).
RETURN VALUE^
函數執行成左藀^0,否則返回-1, 並設置錯誤代碼.
ERRORS~
EBADF sockfd 不是一茼X法套接字描z符.
EINVAL 套接字已經綁定到一茼a址.這一條在以後會有所改變: 具體參見
linux/unix/sock.c
EACCES 地址受保護,使用者不是系統管理.
ENOTSOCK
參數是檔案描z符,不是一荇M接字.
下列錯誤適用於UNIX域 (AF_UNIX) 套接字.
EINVAL 地址長度 addrlen 錯誤,或者套接字不在 AF_UNIX 族.
EROFS 套接字節點位於只讀檔案系統.
EFAULT my_addr 指向使用者無權訪問的地址空間.
ENAMETOOLONG
my_addr 長度超S圍.
ENOENT 檔案不存在.
ENOMEM 核心存儲空間不足.
ENOTDIR
指定路徑不是一茈媬.
EACCES 指定路徑拒絕訪問.
ELOOP 在解析 my_addr 時發現過多符號連接.
BUGS~
透明代理選項沒有描z.
CONFORMING TO@Pbind 漲艇X現於BSD 4.2)SVr4文件增加了 EADDRNOTAVAIL,
EADDRINUSE, 和 ENOSR 一般性錯誤, 還增加了 EIO, EISDIR 和 EROFS
Unix域錯誤.
NOTE
函數 bind 的第三荌捊篕琱W是int類型(BSD
4.*和libc4以及libc5都是這麼做的).
不知為什麼有的POSIX系統目前仍在使用socklen_t.
目前尚無統一標準,不過glibc2兩者都使用.參見 accept(2).
SEE ALSO見
accept(2), connect(2), listen(2), socket(2), getsockname(2), ip(7),
socket(7)