.\" -*- coding: UTF-8 -*- .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified 1995-07-22 by Michael Chastain : .\" 'gethostname' is real system call on Linux/Alpha. .\" Modified 1997-01-31 by Eric S. Raymond .\" Modified 2000-06-04, 2001-12-15 by aeb .\" Modified 2004-06-17 by mtk .\" Modified 2008-11-27 by mtk .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH gethostname 2 "5 февраля 2023 г." "Linux man\-pages 6.03" .SH ИМЯ gethostname, sethostname \- получить/установить имя узла .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint gethostname(char *\fP\fIname\fP\fB, size_t \fP\fIlen\fP\fB);\fP \fBint sethostname(const char *\fP\fIname\fP\fB, size_t \fP\fIlen\fP\fB);\fP .fi .PP .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .PP \fBgethostname\fP(): .nf .\" The above is something of a simplification .\" also before glibc 2.3 there was a bit churn _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L || /* glibc 2.19 and earlier */ _BSD_SOURCE .fi .PP \fBsethostname\fP(): .nf .\" commit 266865c0e7b79d4196e2cc393693463f03c90bd8 начиная с glibc 2.21: _DEFAULT_SOURCE в glibc 2.19 и 2.20: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) до glibc 2.19, включительно: _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) .fi .SH ОПИСАНИЕ Данные системные вызовы используются для получения или изменения имени узла системы. Точнее говоря, они работают с именем узла, связанным с пространством имён UTS вызывающего процесса. .PP Вызов \fBsethostname\fP() устанавливает имя узла равны значению, указанному в массиве символов \fIname\fP. Аргумент \fIlen\fP определяет количество байт в \fIname\fP. (Таким образом, \fIname\fP не требует наличия завершающего байта с null.) .PP \fBgethostname\fP() возвращает имя узла с null на конце в массиве символов \fIname\fP длиной \fIlen\fP байт. Если имя узла, оканчивающееся null, не помещается, то имя обрезается и ошибки не происходит (но смотрите ЗАМЕЧАНИЯ далее). В POSIX.1 сказано, что если обрезание произошло, то неясно, будет ли буфер содержать завершающий байт с null. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, zero is returned. On error, \-1 is returned, and \fIerrno\fP is set to indicate the error. .SH ОШИБКИ .TP \fBEFAULT\fP \fIname\fP является неправильным адресом. .TP \fBEINVAL\fP .\" Can't occur for gethostbyname() wrapper, since 'len' has an .\" unsigned type; can occur for the underlying system call. \fIlen\fP имеет отрицательное значение или для \fBsethostname\fP() длина \fIlen\fP больше, чем максимально допустимое значение. .TP \fBENAMETOOLONG\fP (glibc \fBgethostname\fP()) \fIlen\fP is smaller than the actual size. (Before glibc 2.1, glibc uses \fBEINVAL\fP for this case.) .TP \fBEPERM\fP Для работы с \fBsethostname\fP() у вызывающего нет мандата \fBCAP_SYS_ADMIN\fP в пользовательском пространстве имён, связанном с его пространством имён UTS (смотрите \fBnamespaces\fP(7)). .SH СТАНДАРТЫ SVr4, 4.4BSD (данная функция впервые появилась в 4.2BSD). В POSIX.1\-2001 и POSIX.1\-2008 определена \fBgethostname\fP(), но нет \fBsethostname\fP(). .SH ЗАМЕЧАНИЯ SUSv2 гарантирует, что «Длина имени узла ограничена 255\-ю байтами». POSIX.1 гарантирует, что «Длина имени узла (не включая завершающий нулевой символ) ограничена \fBHOST_NAME_MAX\fP байтами». В Linux значение \fBHOST_NAME_MAX\fP равно 64, которое было урезано начиная с Linux 1.0 (ранние версии имели предел в 8 байт). .SS "Отличия между библиотекой C и ядром" Библиотека GNU C library не использует системный вызов \fBgethostname\fP(); вместо этого \fBgethostname\fP() в ней реализован в виде библиотечной функции, которая вызывает \fBuname\fP(2) и копирует до \fIlen\fP байт в \fIname\fP из возвращаемого поля \fInodename\fP. Выполнив копирование, функция проверяет, что длина \fInodename\fP не больше или равна \fIlen\fP, и если это обнаруживается, то функция возвращает \-1, устанавливая значение \fIerrno\fP равным \fBENAMETOOLONG\fP; в этом случае в возвращаемое значение \fIname\fP завершающий null не добавляется. .PP .\" At least glibc 2.0 and glibc 2.1, older versions not checked Versions of glibc before glibc 2.2 handle the case where the length of the \fInodename\fP was greater than or equal to \fIlen\fP differently: nothing is copied into \fIname\fP and the function returns \-1 with \fIerrno\fP set to \fBENAMETOOLONG\fP. .SH "СМ. ТАКЖЕ" \fBhostname\fP(1), \fBgetdomainname\fP(2), \fBsetdomainname\fP(2), \fBuname\fP(2), \fButs_namespaces\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitry Bolkhovskikh , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .