GETHOSTNAME(3) | Library Functions Manual | GETHOSTNAME(3)

# NAME

`gethostname`, `sethostname` — get/set name of current host

# SYNOPSIS

`#include <unistd.h>`

int
`gethostname`(char *name, size_t namelen);

int
`sethostname`(const char *name, size_t namelen);

# DESCRIPTION

The `gethostname`() function returns the standard host name for the current machine, as previously set by `sethostname`(). The parameter namelen specifies the size of the name array. If insufficient space is provided, the returned name is truncated. The returned name is always NUL terminated. If no space is provided, an error is returned.

`sethostname`() sets the name of the host machine to be name, which has length namelen. This call is restricted to the superuser and is normally used only when the system is bootstrapped.

# RETURN VALUES

If the call succeeds, a value of 0 is returned. If the call fails, a value of -1 is returned and an error code is placed in the global variable errno.

# ERRORS

The following errors may be returned by these calls:

[`EFAULT`]
  The name parameter gave an invalid address.
[`ENOMEM`]
  The namelen parameter was zero.
[`EPERM`]
  The caller tried to set the hostname and was not the superuser.

# SEE ALSO

hostname(1), sysctl(2), getdomainname(3), gethostid(3), sysctl(8), yp(8)

# STANDARDS

The `gethostname`() function call conforms to X/Open Portability Guide Issue 4, Version 2 (“XPG4.2”).

# HISTORY

The `gethostname`() function call appeared in 4.2BSD.

# BUGS

Host names are limited to `MAXHOSTNAMELEN` (from `<sys/param.h>`) characters, currently 256. This includes the terminating NUL character. Note that the corresponding POSIX definition `HOST_NAME_MAX` in `<limits.h>` does not include the terminating NUL character.

If the buffer passed to `gethostname`() is smaller than `MAXHOSTNAMELEN`, other operating systems may not guarantee termination with NUL.

July 17, 2022 | Debian