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.
On success, zero is returned. On error, -1 is returned, and errno is
set appropriately.
EINVAL 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.)
EPERM For sethostname, the caller was not the superuser.
EFAULT name is an invalid address.
SVr4, 4.4BSD (this function first appeared in 4.2BSD). POSIX.1 does
not define these functions, but ISO/IEC 9945-1:1990 mentions them in
B.4.4.1.
According to the SUSv2, gethostname must return len bytes (a truncated
hostname, NUL-terminated or not) when the hostname is longer.
Linux/Alpha (which has a system call gethostname) complies with this
requirement, but libc and glibc on Linux/i386 only return an error in
this case.
The definition of success varies. SUSv2 defines gethostname() as
`return possibly truncated hostname', and having a small len does not
cause an error return. Of course it must be possible to be certain that
one has obtained the full hostname, and to this end SUSv2 guarantees
that `Host names are limited to 255 bytes'.
getdomainname(2), setdomainname(2), uname(2)
Linux 1.3.6 1995-07-22 GETHOSTNAME(2)
[ Back ] |