table of contents
GETDOMAINNAME(2) | Руководство программиста Linux | GETDOMAINNAME(2) |
ИМЯ¶
getdomainname, setdomainname - получить/установить имя домена
ОБЗОР¶
#include <unistd.h>
int getdomainname(char *name, size_t
len);
int setdomainname(const char *name, size_t
len);
Требования
макроса
тестирования
свойств
для glibc (см.
feature_test_macros(7)):
getdomainname(), setdomainname():
ОПИСАНИЕ¶
Эти функции используются для доступа к имени домена узла или для его изменения.
setdomainname() изменяет доменное имя на значение, указанное в массиве символов name. В аргументе len задаётся количество байт в name. (То есть name может не завершаться байтом с null.)
getdomainname() возвращает доменное имя с null на конце в массиве символов name, который имеет длину len байт. Если для доменного имени с null на конце требуется больше чем len байт, то getdomainname() возвращает первые len байт (glibc) или возвращает ошибку (libc).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
ОШИБКИ¶
setdomainname() может завершиться со следующими ошибками:
- EFAULT
- name указывает за пределы пользовательского адресного пространства.
- EINVAL
- Значение len отрицательно или слишком большое.
- EPERM
- Вызывающий не имеет прав (Linux: не имеет мандата CAP_SYS_ADMIN).
getdomainname() может завершиться со следующими ошибками:
- EINVAL
- Для getdomainname() в libc: значение name равно NULL или name длиннее чем len байт.
СООТВЕТСТВИЕ СТАНДАРТАМ¶
В POSIX нет этих вызовов.
ЗАМЕЧАНИЯ¶
Начиная с Linux 1.0, длина доменного имени, включая завершающий байт с null, ограничена 64 байтами. В более старых ядрах ограничение было 8 байт.
На большинстве архитектур Linux (включая x86), системный вызов getdomainname() отсутствует; вместо него в библиотеке glibc реализована функция getdomainname(), которая возвращает копию поля domainname, которую возвращает вызов uname(2).
СМОТРИТЕ ТАКЖЕ¶
2009-09-27 | Linux |