Manpages

이 름

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 [AT] soback.net>, 2000년 7월 2일

COMMENTS