GETPEERNAME(2)

이름
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@soback.kornet.net>, 2000년 5월 2일