이 름
getpeername − 접 속 된 호 스 트 의 이 름 을 알 아 낸 다 .
사 용 법
#include <sys/socket.h>
int getpeername(int s, struct sockaddr *name, socklen_t *namelen);
설 명
getpeername는 소 켓 s에 접 속 된 호 스 트 의 이 름 을 리 턴 한 다 . namelen 인 자 는 name이 가 리 키 고 있 는 영 역 의 크 기 로 초 기 화 되 어 야 한 다 . 리 턴 시 , 이 것 은 리 턴 되 는 name의 실 제 크 기 (바 이 트 단 위 로 )를 갖 는 다 . 제 공 된 버 퍼 가 너 무 작 으 면 name은 잘 린 다 .
반 환 값
성 공 시 , 0이 리 턴 된 다 . 에 러 시 , −1이 리 턴 되 며 , errno는 적 당 한 값 으 로 설 정 된 다 .
에 러
EBADF |
s 인 자 가 유 효 한 기 술 자 가 아 니 다 . |
ENOTSOCK
s이 소 켓 이 아 니 라 파 일 이 다 .
ENOTCONN
소 켓 이 연 결 되 지 않 았 다 .
ENOBUFS
시 스 템 에 연 산 을 위 해 서 이 용 할 수 있 는 자 원 이 충 분 치 않 다 .
EFAULT |
name이 가 리 키 고 있 는 메 모 리 가 유 효 한 프 로 세 스 주 소 영 역 이 아 니 다 . |
호 환
SVr4, 4.4BSD (getpeername는 4.2BSD에 서 처 음 으 로 나 타 났 다 ).
주 의
getpeername의 세 번 제 인 자 는 실 제 로 는 ’int *’ 이 다 . (그 리 고 이 것 은 BSD 4.* , libc4 ,libc5의 경 우 이 다 ). POSIX 혼 란 때 문 에 현 재 의 socklen_t이 제 시 되 었 다 . 표 준 초 안 에 서 는 아 직 채 택 되 지 않 았 지 만 , glibc2는 이 미 이 를 채 택 하 여 socklen_t도 지 원 한 다 . accept(2)를 참 조 하 라 .
관 련 항 목
accept(2), bind(2), getsockname(2)
역 자
정 강 훈 <skyeyes [AT] soback.net>, 2000년 5월 2일