NAME
getdomainname, setdomainname - NIS 도메인 이름 얻기/설정하기
SYNOPSIS
#include <unistd.h>
int getdomainname(char *name, size_t len);
int setdomainname(const char *name, size_t len);
glibc 기능 확인 매크로 요건 (feature_test_macros(7) 참고):
getdomainname(),setdomainname():-
- glibc 2.21부터:
_DEFAULT_SOURCE- glibc 2.19 및 2.20:
_DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)- glibc 2.19까지:
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
DESCRIPTION
이 함수들을 이용해 호스트 시스템의 NIS 도메인 이름에 접근하거나 변경한다. 정확하게는 호출 프로세스의 UTS 네임스페이스에 연계된 NIS 도메인 이름에 대해 동작한다.
setdomainname()은 도메인 이름을 문자 배열 name에 준 값으로 설정한다. len 인자는 name의 바이트 수를 나타낸다. (즉 name에 종료용 널 바이트가 필요치 않다.)
getdomainname()은 널로 끝나는 도메인 이름을 길이가 len 바이트인 문자 배열 name으로 반환한다. 그 널 종료 도메인 이름에 len 바이트 넘게 필요한 경우 getdomainname()은 (glibc에서) 처음 len 바이트를 반환하거나 (libc에서) 오류를 내놓는다.
RETURN VALUE
성공 시 0을 반환한다. 오류 시 -1을 반환하며 오류를 나타내도록 errno를 설정한다.
ERRORS
setdomainname()이 다음 오류로 실패할 수 있다.
EFAULTname이 사용자 주소 공간 밖을 가리킨다.EINVALlen이 음수이거나 너무 크다.EPERM- 호출자가 자기 UTS 네임스페이스에 연계된 사용자 네임스페이스에서
CAP_SYS_ADMIN역능을 가지고 있지 않다. (namespaces(7) 참고.)
getdomainname()이 다음 오류로 실패할 수 있다.
EINVAL- libc 하의
getdomainname():name이 NULL이거나name이len바이트보다 길다.
CONFORMING TO
POSIX에 이 호출들이 명세되어 있지 않다.
NOTES
리눅스 1.0부터는 도메인 이름 길이에 대한 제한값이 종료용 널 바이트를 포함해서 64바이트이다. 그 전 커널에서는 8바이트였다.
대다수 리눅스 아키텍처(x86 포함)에는 getdomainname() 시스템 호출이 없다. glibc에서는 대신 uname(2) 호출이 반환한 domainname 필드의 사본을 반환하는 라이브러리 함수로 getdomainname()을 구현한다.
SEE ALSO
gethostname(2), sethostname(2), uname(2), uts_namespaces(7)
2021-03-22