Rechercher une page de manuel
bind
Langue: ko
Version: 1998년 10월 3일 (fedora - 25/11/07)
Section: 2 (Appels système)
이름
bind - 소켓에 이름을 묶는다.사용법
#include <sys/types.h>#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
설명
bind 는 소켓 sockfd 와 로컬 주소 my_addr를 준다. my_addr 는 long 형 addrlen 바이트이다. 전통적으로, 이것은 "이름을 소켓에 할당하기" 라고 불리어진다. 소켓이 socket(2)으로 생성되었을때, 그것은 이름 공간(address family)에 존재하지만 할당된 이름을 가지고 있는것은 아니다.SOCK_STREAM 소켓이 연결들을 받기 전에 bind 를 사용하여 로컬 주소를 할당하는 것이 보통 필수적이다. accept(2)를 참조해라).
주의
이름 묶기시 사용되는 규칙들은 주소 가족(address families)들마다 다르다. 세부 사항을 위해서 Section 7에 있는 메뉴얼을 참조해라. AF_INET 를 위해서는 ip(7)를, AF_UNIX 를 위해서는 unix(7)를, AF_APPLETALK 를 위해서는 ddp(7)를, AF_PACKET 를 위해서는 packet(7)를, AF_X25 를 위해서는 x25(7)를 그리고 AF_NETLINK 를 위해서는 netlink(7)를 참고해라.반환값
성공시, 0이 반환된다. 에러시, -1이 반환되며, errno 는 적당한 값으로 설정된다.에러
- 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시에 만났다.
버그
투명한 프록시 옵션들은 기술되지 않았다.호환
SVr4, 4.4BSD ( bind 함수는 BSD4.2에서 처음 나타났다.) SVr4는 추가적으로 EADDRNOTAVAIL, EADDRINUSE를,그리고 일반적 에러 조건들인 ENOSR 를, 그리고 Unix-도메인 에러 조건들인 EIO, EISDIR 그리고 EROFS 를 문서화 했다.주의
bind 의 3번째 인자는 실제로 int이다.(그리고 이것은 BSD 4.* 와 libc4, libc5가 가지고 있는 것이다.) 몇몇 POSIX 들은 현재의 socklen_t 때문에 약간 혼란스럽다. 표준은 아직 채택되지 않았지만, glibc2는 이미 그것을 따르고 있고 또한 socklen_t를 가지고 있다. accept(2)를 참고해라.관련 항목
accept(2), connect(2), listen(2), socket(2), getsockname(2), ip(7), socket(7)역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 7월 2일
N'être pas compris ! Est-il si mauvais de n'être pas compris ? Pythagore
ne fut pas compris, ni Socrate, ni Jésus, ni Luther, ni Copernic, ni
Galilé, ni aucun des esprits sages et purs qui ont pris chair. Etre
grand est une excellente condition pour n'être pas compris.
-+- Ralph Waldo Emerson (1803-1882) -+-
ne fut pas compris, ni Socrate, ni Jésus, ni Luther, ni Copernic, ni
Galilé, ni aucun des esprits sages et purs qui ont pris chair. Etre
grand est une excellente condition pour n'être pas compris.
-+- Ralph Waldo Emerson (1803-1882) -+-
Contenus ©2006-2010 Benjamin Poulain
Design ©2006-2010 Maxime Vantorre