GETDOMAINNAME(2)          (2019-10-10)           GETDOMAINNAME(2)

          getdomainname, setdomainname - get/set NIS domain name

          #include <unistd.h>

          int getdomainname(char *name, size_t len);
          int setdomainname(const char *name, size_t len);

     Feature Test Macro Requirements for glibc (see

          getdomainname(), setdomainname():
              Since glibc 2.21:
              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)

          These functions are used to access  or  to  change  the  NIS
          domain  name of the host system.  More precisely, they oper-
          ate on the NIS  domain  name  associated  with  the  calling
          process's UTS namespace.

          setdomainname() sets the domain name to the value  given  in
          the  character  array  name.  The len argument specifies the
          number of bytes in name. (Thus, name does not require a ter-
          minating null byte.)

          getdomainname() returns the null-terminated domain  name  in
          the  character  array name, which has a length of len bytes.
          If the null-terminated domain name requires  more  than  len
          bytes,  getdomainname()  returns the first len bytes (glibc)
          or gives an error (libc).

          On success, zero is returned.  On error, -1 is returned, and
          errno is set appropriately.

          setdomainname() can fail with the following errors:

               name pointed outside of user address space.

               len was negative or too large.

     Page 1                        Linux             (printed 5/24/22)

     GETDOMAINNAME(2)          (2019-10-10)           GETDOMAINNAME(2)

               The caller did not have the CAP_SYS_ADMIN capability in
               the  user  namespace  associated with its UTS namespace
               (see namespaces(7)).

          getdomainname() can fail with the following errors:

               For getdomainname() under libc: name is NULL or name is
               longer than len bytes.

          POSIX does not specify these calls.

          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.

          On most Linux architectures (including  x86),  there  is  no
          getdomainname()   system  call;  instead,  glibc  implements
          getdomainname() as a library function that returns a copy of
          the domainname field returned from a call to uname(2).

          gethostname(2), sethostname(2), uname(2), uts_namespaces(7)

          This page is part of release 5.10  of  the  Linux  man-pages
          project.   A  description  of the project, information about
          reporting bugs, and the latest version of this page, can  be
          found at

     Page 2                        Linux             (printed 5/24/22)