| .\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu) |
| .\" |
| .\" %%%LICENSE_START(VERBATIM) |
| .\" Permission is granted to make and distribute verbatim copies of this |
| .\" manual provided the copyright notice and this permission notice are |
| .\" preserved on all copies. |
| .\" |
| .\" Permission is granted to copy and distribute modified versions of this |
| .\" manual under the conditions for verbatim copying, provided that the |
| .\" entire resulting derived work is distributed under the terms of a |
| .\" permission notice identical to this one. |
| .\" |
| .\" Since the Linux kernel and libraries are constantly changing, this |
| .\" manual page may be incorrect or out-of-date. The author(s) assume no |
| .\" responsibility for errors or omissions, or for damages resulting from |
| .\" the use of the information contained herein. The author(s) may not |
| .\" have taken the same level of care in the production of this manual, |
| .\" which is licensed free of charge, as they might when working |
| .\" professionally. |
| .\" |
| .\" Formatted or processed versions of this manual, if unaccompanied by |
| .\" the source, must acknowledge the copyright and authors of this work. |
| .\" %%%LICENSE_END |
| .\" |
| .\" Modified 1997-08-25 by Nicolรกs Lichtmaier <nick@debian.org> |
| .\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com> |
| .\" Modified 2008-11-27 by mtk |
| .\" |
| .TH GETDOMAINNAME 2 2021-03-22 "Linux" "Linux Programmer's Manual" |
| .SH NAME |
| getdomainname, setdomainname \- get/set NIS domain name |
| .SH SYNOPSIS |
| .nf |
| .B #include <unistd.h> |
| .PP |
| .BI "int getdomainname(char *" name ", size_t " len ); |
| .BI "int setdomainname(const char *" name ", size_t " len ); |
| .fi |
| .PP |
| .RS -4 |
| Feature Test Macro Requirements for glibc (see |
| .BR feature_test_macros (7)): |
| .RE |
| .PP |
| .BR getdomainname (), |
| .BR setdomainname (): |
| .nf |
| Since glibc 2.21: |
| .\" commit 266865c0e7b79d4196e2cc393693463f03c90bd8 |
| _DEFAULT_SOURCE |
| In glibc 2.19 and 2.20: |
| _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) |
| Up to and including glibc 2.19: |
| _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) |
| .fi |
| .SH DESCRIPTION |
| These functions are used to access or to change the NIS domain name of the |
| host system. |
| More precisely, they operate on the NIS domain name associated with the calling |
| process's UTS namespace. |
| .PP |
| .BR setdomainname () |
| sets the domain name to the value given in the character array |
| .IR name . |
| The |
| .I len |
| argument specifies the number of bytes in |
| .IR name . |
| (Thus, |
| .I name |
| does not require a terminating null byte.) |
| .PP |
| .BR getdomainname () |
| returns the null-terminated domain name in the character array |
| .IR name , |
| which has a length of |
| .I len |
| bytes. |
| If the null-terminated domain name requires more than \fIlen\fP bytes, |
| .BR getdomainname () |
| returns the first \fIlen\fP bytes (glibc) or gives an error (libc). |
| .SH RETURN VALUE |
| On success, zero is returned. |
| On error, \-1 is returned, and |
| .I errno |
| is set to indicate the error. |
| .SH ERRORS |
| .BR setdomainname () |
| can fail with the following errors: |
| .TP |
| .B EFAULT |
| .I name |
| pointed outside of user address space. |
| .TP |
| .B EINVAL |
| .I len |
| was negative or too large. |
| .TP |
| .B EPERM |
| The caller did not have the |
| .B CAP_SYS_ADMIN |
| capability in the user namespace associated with its UTS namespace (see |
| .BR namespaces (7)). |
| .PP |
| .BR getdomainname () |
| can fail with the following errors: |
| .TP |
| .B EINVAL |
| For |
| .BR getdomainname () |
| under libc: |
| .I name |
| is NULL or |
| .I name |
| is longer than |
| .I len |
| bytes. |
| .SH CONFORMING TO |
| POSIX does not specify these calls. |
| .\" But they appear on most systems... |
| .SH NOTES |
| Since Linux 1.0, the limit on the length of a domain name, |
| including the terminating null byte, is 64 bytes. |
| In older kernels, it was 8 bytes. |
| .PP |
| On most Linux architectures (including x86), |
| there is no |
| .BR getdomainname () |
| system call; instead, glibc implements |
| .BR getdomainname () |
| as a library function that returns a copy of the |
| .I domainname |
| field returned from a call to |
| .BR uname (2). |
| .SH SEE ALSO |
| .BR gethostname (2), |
| .BR sethostname (2), |
| .BR uname (2), |
| .BR uts_namespaces (7) |