Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       uname - получает название и информацию о текущем ядре

LIBRARY

       Standard C library (libc, -lc)

СИНТАКСИС

       #include <sys/utsname.h>

       int uname(struct utsname *buf);

ОПИСАНИЕ

       uname()  возвращает  информацию  о  системе  в  структуру  с  адресом buf. Структура utsname определена в
       <sys/utsname.h>:

           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 не определены (см. ЗАМЕЧАНИЯ); поля завершаются байтом с null ('\0'.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       On success, zero is returned.  On error, -1 is returned, and errno is set to indicate the error.

ОШИБКИ

       EFAULT Значение buf не определено.

СТАНДАРТЫ

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.4BSD.

       Поле domainname (доменное имя NIS или YP) является расширением GNU.

ЗАМЕЧАНИЯ

       The kernel has the name, release, version, and supported machine type built in.  Conversely, the nodename
       field is configured by the administrator to match the network (this is what the  BSD  historically  calls
       the   "hostname",  and  is  set  via  sethostname(2)).   Similarly,  the  domainname  field  is  set  via
       setdomainname(2).

       The length of the fields in the struct varies.  Some operating systems or libraries use a hardcoded 9  or
       33 or 65 or 257.  Other systems use SYS_NMLN or _SYS_NMLN or UTSLEN or _UTSNAME_LENGTH.  Clearly, it is a
       bad  idea  to  use  any  of  these  constants; just use sizeof(...).  SVr4 uses 257, "to support Internet
       hostnames" — this is the largest value likely to be encountered in the wild.

       Часть информации из  структуры  utsname  может  быть  получена  также  через  /proc/sys/kernel/  {ostype,
       hostname, osrelease, version, domainname}.

   Отличия между библиотекой C и ядром
       Со  временем,  увеличение  размера  структуры  utsname  последовательно  привело  к трём версиям uname():
       sys_olduname()  (слот  __NR_oldolduname),  sys_uname()  (слот  __NR_olduname)  и   sys_newuname()   (слот
       __NR_uname).  В  первой  длина каждого поля равна 9; во второй 65; в третьей также 65, но добавилось поле
       domainname. Обёрточная функция uname() в glibc скрывает эти  подробности  от  приложений,  вызывая  самую
       новую версию системного вызова, предоставляемого ядром.

СМ. ТАКЖЕ

       uname(1), getdomainname(2), gethostname(2), uts_namespaces(7)

ПЕРЕВОД

       Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy
       Ovchinnikov   <dmitriyxt5@gmail.com>,   Dmitry   Bolkhovskikh   <d20052005@yandex.ru>,   Katrin  Kutepova
       <blackkatelv@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное  письмо
       на man-pages-ru-talks@lists.sourceforge.net.

Linux man-pages 6.03                            5 февраля 2023 г.                                       uname(2)