GETHOSTNAME(2) Linux Programmer's Manual GETHOSTNAME(2)

gethostname, sethostname - get/set host name

#include <unistd.h>

int gethostname(char *name, size_t len);
int sethostname(const char *name, size_t len);

These functions are used to access or to change the host name of the current processor. The gethostname() function returns a NUL-terminated hostname (set earlier by sethostname()) in the array name that has a length of len bytes. In case the NUL-terminated hostname does not fit, no error is returned, but the hostname is truncated. It is unspecified whether the truncated hostname will be NUL-terminated.

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

name is an invalid address.
len is negative or, for sethostname(), len is larger than the maximum allowed size, or, for gethostname() on Linux/i386, len is smaller than the actual size. (In this last case glibc 2.1 uses ENAMETOOLONG.)
For sethostname(), the caller did not have the CAP_SYS_ADMIN capability.

SVr4, 4.4BSD (this function first appeared in 4.2BSD). POSIX 1003.1-2001 specifies gethostname() but not sethostname().

For many Linux kernel / libc combinations gethostname() will return an error instead of returning a truncated hostname.

SUSv2 guarantees that `Host names are limited to 255 bytes'. POSIX 1003.1-2001 guarantees that `Host names (not including the terminating NUL) are limited to HOST_NAME_MAX bytes'.

getdomainname(2), setdomainname(2), uname(2)

2004-06-17 Linux 2.6.7

Different Versions of this Page: