GETHOSTNAME(2) Linux Programmer's Manual GETHOSTNAME(2)
NAME
gethostname, sethostname - get/set(7,n,1 builtins) host(1,5) name
SYNOPSIS
#include <unistd.h>
int gethostname(char *name, size_t len);
int sethostname(const char *name, size_t len);
DESCRIPTION
These functions are used to access(2,5) or to change the host(1,5) name of the
current processor. The gethostname() function returns a NUL-terminated
hostname (set(7,n,1 builtins) earlier by sethostname()) in(1,8) the array name that has a
length of len bytes. In case the NUL-terminated hostname does not fit,
no error(8,n) is returned, but the hostname is truncated. It is unspecified
whether the truncated hostname will be NUL-terminated.
RETURN VALUE
On success, zero is returned. On error(8,n), -1 is returned, and errno is
set(7,n,1 builtins) appropriately.
ERRORS
EFAULT name is an invalid address.
EINVAL len is negative or, for sethostname, len is larger than the max-
imum allowed size, or, for gethostname on Linux/i386, len is
smaller than the actual size. (In this last case glibc 2.1 uses
ENAMETOOLONG.)
EPERM For sethostname, the caller did not have the CAP_SYS_ADMIN capa-
bility.
CONFORMING TO
SVr4, 4.4BSD (this function first appeared in(1,8) 4.2BSD). POSIX
1003.1-2001 specifies gethostname but not sethostname.
BUGS
For many Linux kernel / libc combinations gethostname will return an
error(8,n) instead of returning a truncated hostname.
NOTES
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'.
SEE ALSO
getdomainname(2), setdomainname(2), uname(1,2)(2)
Linux 2.6.7 2004-06-17 GETHOSTNAME(2)