uname(2) System Calls Manual uname(2) NAZWA uname - pobiera nazwe oraz informacje o biezacym jadrze BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA #include int uname(struct utsname *buf); OPIS uname() zwraca informacje systemowe w strukturze, na ktora wskazuje buf. utsname jest zdefiniowana w : struct utsname { char sysname[]; /* Nazwa systemu operacyjnego (np. "Linux") */ char nodename[]; /* Nazwa w sieci komunikacyjnej, do ktorej wezel jest dolaczony (o ile wystepuje) */ char release[]; /* Wydanie systemu operacyjnego (np. "2.6.28") */ char version[]; /* Wersja systemu operacyjnego */ char machine[]; /* Identyfikator typu sprzetowego */ #ifdef _GNU_SOURCE char domainname[]; /* Nazwa domeny NIS lub YP */ #endif }; Dlugosc tablicy w struct utsname jest nieokreslona (zob. WERSJE i HISTORIA); pola sa zakonczone bajtem null ('\0'). WARTOSC ZWRACANA Po pomyslnym zakonczeniu zwracane jest zero. Po bledzie zwracane jest -1 i ustawiane errno, wskazujac blad. BLEDY EFAULT buf nie jest prawidlowe. WERSJE Skladowa domainname (nazwa domeny NIS lub YP) jest rozszerzeniem GNU. Dlugosc pol w strukturze jest zroznicowana. Niektore systemy operacyjne lub biblioteki uzywaja stalej dlugosci 9 lub 33, lub 65, lub 257. Inne systemy operacyjne korzystaja z SYS_NMLN lub _SYS_NMLN, lub UTSLEN, lub _UTSNAME_LENGTH. Jest zatem zlym pomyslem uzywanie ktorejs z tych stalych; prosze korzystac z sizeof(...). SVr4 uzywa dlugosci 257, ,,aby obslugiwac internetowe nazwy stacji" -- jest to prawdopodobnie najwieksza wartosc, jaka mozna spotkac w praktyce. STANDARDY POSIX.1-2024. HISTORIA POSIX.1-2001, SVr4, 4.4BSD. Roznice biblioteki C/jadra Z biegiem czasu, zwiekszajacy sie rozmiar struktury utsname spowodowal powstanie trzech kolejnych wersji uname(): sys_olduname() (slot __NR_oldolduname), sys_uname() (slot __NR_olduname) oraz sys_newuname() (slot __NR_uname). Pierwsza korzysta z dlugosci 9 we wszystkich polach; druga uzywa 65; trzecia -- rowniez 65, lecz dodaje pole domainname. Funkcja opakowujaca uname() z glibc ukrywa te detale przed aplikacjami, przywolujac najnowsza wersje wywolania systemowego zapewniana przez jadro. UWAGI Jadro ma wbudowane: nazwe, wydanie, wersje i obslugiwany typ sprzetowy. Pole nodename jest natomiast konfigurowane przez administratora, wlasciwie do sieci (BSD historycznie nazywalo je ,,hostname"; jest ustawiane za pomoca sethostname(2)). Pole domainname jest z kolei ustawiane przez setdomainname(2). Czesc informacji utsname jest dostepna rowniez za pomoca /proc/sys/kernel/{ostype, hostname, osrelease, version, domainname}. ZOBACZ TAKZE uname(1), getdomainname(2), gethostname(2), uts_namespaces(7) TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.18 8 lutego 2026 r. uname(2)