setsockopt

GETSOCKOPT(2)               Linux Programmer's Manual              GETSOCKOPT(2)



이름
       getsockopt, setsockopt - 소켓의 옵션을 얻고 설정한다.

사용법
       #include <sys/types.h>
       #include <sys/socket.h>


       int getsockopt(int s, int level, int optname, void *optval, socklen_t
       *optlen);

       int setsockopt(int s, int level, int optname, const void *optval,
       socklen_t optlen);

설명
       Getsockopt setsockopt 는 소켓과 일치하는 manipulate the options 을 다룬다. 옵션은 다중
       프로토콜레벨에 존재할런지 모른다; 그 프로토콜레벨들은 항상 최상의 소켓 레벨에 있다.

       소켓옵션을 조작할때, 옵션 지정과 옵션의 이름이 있는 레벨은 지정되어야 한다.  소켓레벨에서 옵션을 조작하기 위해, level SOL_SOCKET 처럼 지정되어야 한다.

       매개변수 optval optlen setsockopt 를 위해 옵션값을 접근하곤한다.  getsockopt 때문에 그것들은
       요청한 옵션이 반환되는동안 값이 있는 버퍼를 확인한다.  getsockopt, 때문에 optlen optval 가 처음에
       가리키는 버퍼의 크기를 포함하는 결과값 매개인수이고, 반환값의 실제 크기를 나타내는 반환을 수정한다. 옵션값이 제공되거나 반환되지
       않는다면, optval 는 NULL값 일런지 모른다.

       Optname 와 다른 지정된 옵션은 해석을 위해 적절한 프로토콜 모듈에 해석이 안되는 것은 넘어간다.  파일
       <sys/socket.h> 은 아래 설명된 소켓레벨 옵션을 위한 정의를 포함한다. 다른 프로토콜 레벨에 옵션은 포맷과 이름이
       다르다; 메뉴얼의 세션 4에 적절한 기재사항을 참고한다.

       대부분 소켓-레벨 옵션은 optval 를 위해 int 배개변수 사용한다.

       setsockopt 를 위해, 매개변수는 boolean옵션이 가능하기위해 0이 아니어야 한다. 혹은 옵션이 불가능 하면 0이다.


       유효 소켓 옵션의 디스크립터는 socket(7) 과 적당한 프로토콜 맨페이지를 본다..


반환값
       성공시, 0이 반환된다. 실패시, -1이 반환되고, errno 는 적절히 설정된다.

에러
       EBADF  인수 s 는 유효한 디스크립터가 아니다.

       ENOTSOCK
              인수 s 는 소켓이 아니고, 파일이다.

       ENOPROTOOPT
              옵션은 지정된 레벨에 알려지지 않았다.

       EFAULT The address pointed to by optval 가 가리키는 주소는 프로세스 주소공간의 유효한 부분이
              아니다.  getsockopt 때문에 optlen 가 프로세스 주소공간의 유효한 부분이 아니라면, 이 에러는 또한
              반환될런지 모른다.

호환
       SVr4, 4.4BSD (이러한 시스템 호출은 4.2BSD에서 처음 보였다).  SVr4 는 추가적으로 ENOMEM와 ENOSR
       에러코드를 문서화했지만, SO_SNDLOWAT, SO_RCVLOWAT, SO_SNDTIMEO, SO_RCVTIMEO 옵션은
       문서화되지 않았다.

주의
       getsockopt setsockopt 의 다섯번째 인수는 실제 int [*]에 있다.  초안 표준(draft
       standard)는 아직 채택되지 않았지만, glibc2는 이미 따르고 있고, socklen_t [*]를 갖는다.
       accept(2) 를 본다.

버그
       소켓옵션의 다수는 시스템의 저수준 레벨에서 다뤄져야한다.

관련 항목
       ioctl(2), socket(2), getprotoent(3), protocols(5), socket(7), unix(7),
       tcp(7)

역자
       ASPLINUX<man@asp-linux.co.kr>, 2000년 7월 29일



Linux Man Page                     24 May 1999                     GETSOCKOPT(2)