GETSOCKOPT
Section: Linux Programmer's Manual
(2)
Updated: 24 May 1999
Index
Return to Main Contents
이름
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일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 에러
-
- 호환
-
- 주의
-
- 버그
-
- 관련 항목
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:06:59 GMT, March 25, 2004