Provided by: manpages-ru-dev_4.19.0-7_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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

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