Linux 2.2
3 Oct 1998
manpages-zh
Chinese manual pages
man-pages-zh_tw
Traditional Chinese Linux man pages
manpages-dev
Manual pages about using GNU/Linux for development
man-pages
Linux kernel and C library user-space interface documentation
NAME 名稱
bind - 將一個名字和一個套接字綁定到一起(賦一個名字給一個套接字)
SYNOPSIS 概述
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
DESCRIPTION 描述
NOTES 注意
RETURN VALUE 返回值
函數執行成功返回0,否則返回-1, 並設置錯誤代碼.
ERRORS 錯誤
EBADF | sockfd 不是一個合法套接字描述符. |
EINVAL | 套接字已經綁定到一個地址.這一條在以後會有所改變: 具體參見 linux/unix/sock.c |
EACCES | 地址受保護,用戶不是系統管理員. |
ENOTSOCK | |
參數是文件描述符,不是一個套接字. | |
下列錯誤適用於UNIX域 (AF_UNIX) 套接字. | |
EINVAL | 地址長度 addrlen 錯誤,或者套接字不在 AF_UNIX 族. |
EROFS | 套接字節點位於只讀文件系統. |
EFAULT | my_addr 指向用戶無權訪問的地址空間. |
ENAMETOOLONG | |
my_addr 長度超範圍. | |
ENOENT | 文件不存在. |
ENOMEM | 內核存儲空間不足. |
ENOTDIR | |
指定路徑不是一個目錄. | |
EACCES | 指定路徑拒絕訪問. |
ELOOP | 在解析 my_addr 時發現過多符號連接. |
BUGS 勘誤
透明代理選項沒有描述.
CONFORMING TO 一致性
SVr4,4.4BSD(函數 bind 首次出現於BSD 4.2)SVr4文檔增加了 EADDRNOTAVAIL, EADDRINUSE, 和 ENOSR 一般性錯誤, 還增加了 EIO, EISDIR 和 EROFS Unix域錯誤.
NOTE
函數 bind 的第三個參數實際上是int類型(BSD 4.*和libc4以及libc5都是這麼做的). 不知爲什麼有的POSIX系統目前仍在使用socklen_t. 目前尚無統一標準,不過glibc2兩者都使用.參見 accept(2).
SEE ALSO 參見
跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
REFERENCED BY
authbind(1), authbind-helper(8), sctp_bindx(3), sctp(7), accept(2), connect(2), getpeername(2), getsockname(2), listen(2), socket(2), socketcall(2), bindresvport(3), getaddrinfo(3), getifaddrs(3), if_nameindex(3), services(5), ddp(7), inotify(7), ip(7), ipv6(7), netlink(7), packet(7), raw(7), sock_diag(7), socket(7), tcp(7), udp(7), unix(7), dircproxy(1), atalk(4), privbind(1), socket(1), tac_plus(8), tcptraceroute.mt(1), msocket(2viewos), vsock(7), tcptraceroute(1), rds(7)