uname(2) - wariua/manpages-ko GitHub Wiki
uname - νμ¬ μ»€λμ λν μ΄λ¦κ³Ό μ 보 μ»κΈ°
#include <sys/utsname.h>
int uname(struct utsname *buf);
uname()
μ μμ€ν
μ 보λ₯Ό buf
κ° κ°λ¦¬ν€λ κ΅¬μ‘°μ²΄λ‘ λ°ννλ€. utsname
ꡬ쑰체λ <sys/utsname.h>
μ μ μλμ΄ μλ€.
struct utsname {
char sysname[]; /* μ΄μ 체μ μ΄λ¦ (κ°λ Ή "Linux") */
char nodename[]; /* "ꡬνμμ κ·μ νλ μ΄λ€ λ§"
λ΄μμμ μ΄λ¦ */
char release[]; /* μ΄μ 체μ λ¦΄λ¦¬μ€ (κ°λ Ή "2.6.28") */
char version[]; /* μ΄μ 체μ λ²μ */
char machine[]; /* νλμ¨μ΄ μλ³μ */
#ifdef _GNU_SOURCE
char domainname[]; /* NIS λλ YP λλ©μΈ μ΄λ¦ */
#endif
};
struct utsname
λ΄ λ°°μ΄λ€μ κΈΈμ΄λ λͺ
μΈλμ΄ μμ§ μλ€ (NOTES μ°Έκ³ ). κ·Έ νλλ€μ λ λ°μ΄νΈ('\0'
)λ‘ λλλ€.
μ±κ³΅ μ 0μ λ°ννλ€. μ€λ₯ μ -1μ λ°ννλ©° errno
λ₯Ό μ μ ν μ€μ νλ€.
EFAULT
-
buf
κ° μ ν¨νμ§ μλ€.
POSIX.1-2001, POSIX.1-2008, SVr4. 4.3BSDμλ uname()
νΈμΆμ΄ μλ€.
domainname
λ©€λ²(NIS λλ YP λλ©μΈ μ΄λ¦)λ GNU νμ₯μ΄λ€.
μ΄ ν¨μλ μμ€ν
νΈμΆμ΄κ³ μλ§ μ΄μ 체μ λ μκΈ° μ΄λ¦κ³Ό 릴리μ€, λ²μ μ μκ³ μμ κ²μ΄λ€. λ μκΈ°κ° μ΄λ€ νλμ¨μ΄ μμμ λλμ§λ μλ€. κ·Έλμ ꡬ쑰체μ λ€ νλμλ μλ―Έκ° μλ€. λ°λ©΄ nodename
νλμλ μλ―Έκ° μλ€. μ΄λ€ κ·μ λΌ μμ§ μμ λ§μμ ν λ¨Έμ μ μ΄λ¦μΈλ°, λ³΄ν΅ λ¨Έμ λ€μ μ¬λ¬ λ§ λ΄μ μκ³ μ¬λ¬ μ΄λ¦μ κ°μ§κ³ μλ€. κ²λ€κ° 컀λμ΄ κ·Έλ° λ΄μ©μ μ λ°©λ²λ μμΌλ―λ‘ μ¬κΈ°μ λλΌκ³ λ΅ν μ§λ₯Ό 컀λμκ² μλ € μ£Όμ΄μΌ νλ€. domainname
νλμμλ λ§μ°¬κ°μ§μ΄λ€.
μ΄λ₯Ό μν΄ λ¦¬λ
μ€μμλ μμ€ν
νΈμΆ sethostname(2)
κ³Ό setdomainname(2)
μ μ¬μ©νλ€. μ°Έκ³ λ‘ μ΄λ νμ€μμλ sethostname(2)
μΌλ‘ μ€μ ν νΈμ€νΈλͺ
μ΄ uname()
μ΄ λ°ννλ ꡬ쑰체μ nodename
νλμ κ°μ λ¬Έμμ΄μ΄λΌκ³ λ§νμ§ μλλ€. (μ€μ λ‘ μ΄λ€ μμ€ν
μμλ 256λ°μ΄νΈ νΈμ€νΈλͺ
κ³Ό 8λ°μ΄νΈ λ
Έλλͺ
μ΄ κ°λ₯νλ€.) νμ§λ§ 리λ
μ€μμλ κ·Έλ λ€. setdomainname(2)
κ³Ό domainname
νλλ λ§μ°¬κ°μ§μ΄λ€.
ꡬ쑰체μ νλ κΈΈμ΄λ λ€μνλ€. μ΄λ€ μ΄μ 체μ λ λΌμ΄λΈλ¬λ¦¬μμλ 9, 33, 65, 257μ νλμ½λ© ν΄μ μ¬μ©νλ€. λ€λ₯Έ μμ€ν
μμλ SYS_NMLN
μ΄λ _SYS_NMLN
, UTSLEN
, _UTSNAME_LENGTH
λ₯Ό μ¬μ©νλ€. μ΄ μμλ€μ μ΄μ©νλ 건 λΆλͺ
μ’μ§ μμ μκ°μ΄λ€. κ·Έλ₯ sizeof(...)
λ₯Ό μ¬μ©νλΌ. μΈν°λ· νΈμ€νΈλͺ
μ λ΄μ μ μλλ‘ 257μ μ ννλ κ²½μ°κ° λ§λ€.
/proc/sys/kernel/{ostype,hostname,osrelease,version,domainname}
μ ν΅ν΄μλ utsname μ 보 μΌλΆμ μ κ·Όν μ μλ€.
μκ°μ΄ νλ₯΄λ©° utsname
κ΅¬μ‘°μ²΄κ° μ»€μ§λ©΄μ μΈ κ°μ§ uname()
λ²μ μ΄ μκ²Όλ€. sys_olduname()
(μ¬λ‘― __NR_oldolduname
), sys_uname()
(μ¬λ‘― __NR_olduname
), κ·Έλ¦¬κ³ sys_newuname()
(μ¬λ‘― __NR_uname
)μ΄λ€. 첫 λ²μ§Έμμλ λͺ¨λ νλλ₯Ό κΈΈμ΄ 9λ‘ μ¬μ©νκ³ , λ λ²μ§Έμμλ 65λ₯Ό μ¬μ©νλ€. μΈ λ²μ§Έμμλ 65λ₯Ό μ¬μ©νμ§λ§ domainname
νλλ₯Ό μΆκ°νλ€. glibcμ uname()
λνΌ ν¨μμμ μ΄λ° μΈλΆ μ¬νμ μμ©μκ² κ°μΆ° μ£Όκ³ μ»€λμ΄ μ 곡νλ κ°μ₯ μ΅μ λ²μ μ μμ€ν
νΈμΆμ λΆλ₯Έλ€.
uname(1)
, getdomainname(2), gethostname(2), namespaces(7)
2019-03-06