gethostname(2) - wariua/manpages-ko GitHub Wiki
gethostname, sethostname - ํธ์คํธ๋ช ์ป๊ธฐ/์ค์ ํ๊ธฐ
#include <unistd.h>
int gethostname(char *name, size_t len);
int sethostname(const char *name, size_t len);
glibc ๊ธฐ๋ฅ ํ์ธ ๋งคํฌ๋ก ์๊ฑด (feature_test_macros(7) ์ฐธ๊ณ ):
-
gethostname()
: -
- glibc 2.12๋ถํฐ:
-
_BSD_SOURCE || _XOPEN_SOURCE >= 500
|| /* glibc 2.12๋ถํฐ: */ _POSIX_C_SOURCE >= 200112L
-
sethostname()
: -
- 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)
์ด ์์คํ ํธ์ถ๋ค์ ์ด์ฉํด ํ์ฌ ํ๋ก์ธ์์ ํธ์คํธ๋ช ์ ์ ๊ทผํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ค.
sethostname()
์ ํธ์คํธ๋ช
์ ๋ฌธ์ ๋ฐฐ์ด name
์ ์ค ๊ฐ์ผ๋ก ์ค์ ํ๋ค. len
์ธ์๋ name
์ ๋ฐ์ดํธ ์๋ฅผ ๋ํ๋ธ๋ค. (์ฆ name
์ ์ข
๋ฃ์ฉ ๋ ๋ฐ์ดํธ๊ฐ ํ์์น ์๋ค.)
gethostname()
์ ๋๋ก ๋๋๋ ํธ์คํธ๋ช
์ ๊ธธ์ด๊ฐ len
๋ฐ์ดํธ์ธ ๋ฌธ์ ๋ฐฐ์ด name
์ผ๋ก ๋ฐํํ๋ค. ๊ทธ ๋ ์ข
๋ฃ ํธ์คํธ๋ช
์ด ๋๋ฌด ๊ธด ๊ฒฝ์ฐ์๋ ์ด๋ฆ์ด ์๋ฆฌ๋ฉฐ ์ด๋ค ์ค๋ฅ๋ ๋ฐํํ์ง ์๋๋ค. (๋จ ์๋ NOTES ์ฐธ๊ณ .) POSIX.1์์๋ ๊ทธ๋ฐ ์ ๋จ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ๋ฐํ ๋ฒํผ์ ์ข
๋ฃ์ฉ ๋ ๋ฐ์ดํธ๊ฐ ํฌํจ๋๋์ง ์ฌ๋ถ๊ฐ ๋ช
์ธ๋์ด ์์ง ์๋ค๊ณ ํ๋ค.
์ฑ๊ณต ์ 0์ ๋ฐํํ๋ค. ์ค๋ฅ ์ -1์ ๋ฐํํ๋ฉฐ errno
๋ฅผ ์ ์ ํ ์ค์ ํ๋ค.
EFAULT
-
name
์ด ์ ํจํ์ง ์์ ์ฃผ์์ด๋ค. EINVAL
-
len
์ด ์์์ด๊ฑฐ๋,sethostname()
์์len
์ด ํ์ฉ ์ต๋ ๊ธธ์ด๋ณด๋ค ํฌ๋ค. ENAMETOOLONG
- (glibc
gethostname()
)len
์ด ์ค์ ํฌ๊ธฐ๋ณด๋ค ์๋ค. (๋ฒ์ 2.1 ์ ์์ glibc๋ ์ด ๊ฒฝ์ฐ์EINVAL
์ ์ฌ์ฉํ๋ค.) EPERM
-
sethostname()
์์ ํธ์ถ์๊ฐ ์๊ธฐ UTS ๋ค์์คํ์ด์ค์ ์ฐ๊ณ๋ ์ฌ์ฉ์ ๋ค์์คํ์ด์ค์์CAP_SYS_ADMIN
์ญ๋ฅ์ ๊ฐ์ง๊ณ ์์ง ์๋ค. (namespaces(7) ์ฐธ๊ณ .)
SVr4, 4.4BSD (4.2BSD์์ ์ด ์ธํฐํ์ด์ค๋ค์ด ์ฒ์ ๋ฑ์ฅ). POSIX.1-2001๊ณผ POSIX.1-2008์์ gethostname()
์ ๋ช
์ธํ์ง๋ง sethostname()
์ ๋ช
์ธํ์ง ์๋๋ค.
SUSv2์์๋ "ํธ์คํธ ์ด๋ฆ์ด 255๋ฐ์ดํธ๋ก ์ ํ๋๋ค"๊ณ ๋ณด์ฅํ๋ค. POSIX.1์์๋ "ํธ์คํธ ์ด๋ฆ์ด (์ข
๋ฃ์ฉ ๋ ๋ฐ์ดํธ ํฌํจํ์ง ์์) HOST_NAME_MAX
๋ฐ์ดํธ๋ก ์ ํ๋๋ค"๊ณ ๋ณด์ฅํ๋ค. ๋ฆฌ๋
์ค์์ HOST_NAME_MAX
๋ 64 ๊ฐ์ผ๋ก ์ ์๋ผ ์์ผ๋ฉฐ ๋ฆฌ๋
์ค 1.0๋ถํฐ ๊ทธ๋ฌ๋ค. (๊ทธ ์ ์ปค๋์์๋ ์ ํ๊ฐ์ด 8๋ฐ์ดํธ์๋ค.)
GNU C ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์๋ gethostname()
์์คํ
ํธ์ถ์ ์ด์ฉํ์ง ์๋๋ค. ๋์ uname(2)์ ํธ์ถํด์ ๋ฐํ๋ nodename
ํ๋๋ฅผ name
์ผ๋ก len
๋ฐ์ดํธ๊น์ง ๋ณต์ฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํจ์๋ก gethostname()
์ ๊ตฌํํ๋ค. ๋ณต์ฌ๋ฅผ ์ํํ ๋ค์ ๊ทธ ํจ์์์๋ nodename
์ ๊ธธ์ด๊ฐ len
๊ณผ ๊ฐ๊ฑฐ๋ ๊ทธ๋ณด๋ค ํฐ์ง ํ์ธํ๊ณ , ๊ทธ๋ฐ ๊ฒฝ์ฐ์๋ errno
๋ฅผ ENAMETOOLONG
์ผ๋ก ์ค์ ํ๊ณ -1์ ๋ฐํํ๋ค. ์ด ๊ฒฝ์ฐ ๋ฐํ๋๋ name
์ ์ข
๋ฃ์ฉ ๋ ๋ฐ์ดํธ๊ฐ ํฌํจ๋์ด ์์ง ์๋ค.
glibc ๋ฒ์ 2.2 ์ ์์๋ nodename
๊ธธ์ด๊ฐ len
๊ณผ ๊ฐ๊ฑฐ๋ ๊ทธ๋ณด๋ค ํฐ ๊ฒฝ์ฐ๋ฅผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ค. ํจ์์์ name
์ผ๋ก ์๋ฌด๊ฒ๋ ๋ณต์ฌํ์ง ์๊ณ ์ errno
๋ฅผ ENAMETOOLONG
์ผ๋ก ์ค์ ํ๊ณ -1์ ๋ฐํํ๋ค.
hostname(1)
, getdomainname(2), uname(2)
2017-09-15