.\" -*- 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 "2 мая 2024 г." "Справочные страницы Linux 6.9.1" .SH ИМЯ gethostname, sethostname \- получить/установить имя узла .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \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 .P .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .P \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 .P \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 вызывающего процесса. .P Вызов \fBsethostname\fP() устанавливает имя узла равны значению, указанному в массиве символов \fIname\fP. Аргумент \fIlen\fP определяет количество байт в \fIname\fP. (Таким образом, \fIname\fP не требует наличия завершающего байта с null.) .P \fBgethostname\fP() возвращает имя узла с null на конце в массиве символов \fIname\fP длиной \fIlen\fP байт. Если имя узла, оканчивающееся null, не помещается, то имя обрезается и ошибки не происходит (но смотрите ЗАМЕЧАНИЯ далее). В POSIX.1 сказано, что если обрезание произошло, то неясно, будет ли буфер содержать завершающий байт с null. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении возвращается 0. При ошибке возвращается \-1, а в \fIerrno\fP содержится код ошибки. .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 ВЕРСИИ 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 не добавляется. .SH СТАНДАРТЫ .TP \fBgethostname\fP() POSIX.1\-2008. .TP \fBsethostname\fP() None. .SH ИСТОРИЯ SVr4, 4.4BSD (данная функция впервые появилась в 4.2BSD). В POSIX.1\-2001 и POSIX.1\-2008 определена \fBgethostname\fP(), но нет \fBsethostname\fP(). .P .\" 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 Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .