uname(2) System Calls Manual uname(2) uname - (libc -lc) #include int uname(struct utsname *buf); uname() buf. utsname : struct utsname { char sysname[]; /* Operating system name (e.g., "Linux") */ char nodename[]; /* Name within communications network to which the node is attached, if any */ char release[]; /* Operating system release (e.g., "2.6.28") */ char version[]; /* Operating system version */ char machine[]; /* Hardware type identifier */ #ifdef _GNU_SOURCE char domainname[]; /* NIS or YP domain name */ #endif }; struct utsname ( ); ('\0'). . -1 errno . EFAULT buf . domainname ( NIS YP) GNU. . 9 33 65 257. SYS_NMLN _SYS_NMLN UTSLEN _UTSNAME_LENGTH. sizeof(...). SVr4 257 " " -- --. POSIX.1-2024. POSIX.1-2001, SVr4, 4.4BSD. C utsname uname(): sys_olduname() ( __NR_oldolduname), sys_uname() ( __NR_olduname), sys_newuname() ( __NR_uname). 9 65 65 domainname. glibc uname() . . nodename ( BSD " " sethostname(2)). domainname setdomainname(2). utsname /proc/sys/kernel/{ostype, hostname, osrelease, version, domainname}. uname(1), getdomainname(2), gethostname(2), uts_namespaces(7) 3 . . : . 6.18 8 2026 uname(2)