1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
.\" Copyright, the authors of the Linux man-pages project
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.TH getdomainname 2 (date) "Linux man-pages (unreleased)"
.SH NAME
getdomainname, setdomainname \- get/set NIS domain name
.SH LIBRARY
Standard C library
.RI ( libc ,\~ \-lc )
.SH SYNOPSIS
.nf
.B #include <unistd.h>
.P
.BR "int getdomainname(" "size_t size;"
.BI " char " name [ size "], size_t " size );
.BR "int setdomainname(" "size_t size;"
.BI " const char " name [ size "], size_t " size );
.fi
.P
.RS -4
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.RE
.P
.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.
.P
.BR setdomainname ()
sets the domain name to the value given in the character array
.IR name .
The
.I size
argument specifies the number of bytes in
.IR name .
(Thus,
.I name
does not require a terminating null byte.)
.P
.BR getdomainname ()
returns the null-terminated domain name in the character array
.IR name ,
which has a size of
.I size
bytes.
If the null-terminated domain name requires more than
.I len
bytes,
.BR getdomainname ()
returns the first
.I len
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 size
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)).
.P
.BR getdomainname ()
can fail with the following errors:
.TP
.B EINVAL
For
.BR getdomainname ()
under libc:
.I name
is NULL or
.I name
is equal or longer than
.I size
bytes.
.SH VERSIONS
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 STANDARDS
None.
.\" But they appear on most systems...
.SH HISTORY
Since Linux 1.0, the limit on the size of a domain name,
including the terminating null byte, is 64 bytes.
In older kernels, it was 8 bytes.
.SH SEE ALSO
.BR gethostname (2),
.BR sethostname (2),
.BR uname (2),
.BR uts_namespaces (7)
|