Name
gethostname, sethostname - get/set host
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 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.
Return Value
On success, zero is returned. On error,
-1 is returned, and
errno is set appropriately.
Errors
- 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.
Conforming to
SVr4,
4.4BSD (this function first appeared in 4.2BSD). POSIX 1003.1-2001 specifies
gethostname but not
sethostname.
Bugs
For many Linux kernel / libc combinations
gethostname will return an error 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(2)
Add a comment | Add a link