NAME
gethostname, sethostname - get/set hostname
SYNOPSIS
#include <unistd.h> int gethostname(char *name, size_t len); int sethostname(const char *name, size_t len); Feature Test Macro Requirements for glibc (see feature_test_macros(7)): gethostname(): Since glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500 || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200112L sethostname(): Since glibc 2.21: _DEFAULT_SOURCE In glibc 2.19 and 2.20: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) Up to and including glibc 2.19: _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
DESCRIPTION
These system calls are used to access or to change the hostname of the current processor. sethostname() sets the hostname to the value given in the character array name. The len argument specifies the number of bytes in name. (Thus, name does not require a terminating null byte.) gethostname() returns the null-terminated hostname in the character array name, which has a length of len bytes. If the null-terminated hostname is too large to fit, then the name is truncated, and no error is returned (but see NOTES below). POSIX.1 says that if such truncation occurs, then it is unspecified whether the returned buffer includes a terminating null byte.
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.
ERRORS
EFAULT name is an invalid address. EINVAL len is negative or, for sethostname(), len is larger than the maximum allowed size. ENAMETOOLONG (glibc gethostname()) len is smaller than the actual size. (Before version 2.1, glibc uses EINVAL for this case.) EPERM For sethostname(), the caller did not have the CAP_SYS_ADMIN capability in the user namespace associated with its UTS namespace (see namespaces(7)).
CONFORMING TO
SVr4, 4.4BSD (these interfaces first appeared in 4.2BSD). POSIX.1-2001 and POSIX.1-2008 specify gethostname() but not sethostname().
NOTES
SUSv2 guarantees that "Host names are limited to 255 bytes". POSIX.1 guarantees that "Host names (not including the terminating null byte) are limited to HOST_NAME_MAX bytes". On Linux, HOST_NAME_MAX is defined with the value 64, which has been the limit since Linux 1.0 (earlier kernels imposed a limit of 8 bytes). C library/kernel differences The GNU C library does not employ the gethostname() system call; instead, it implements gethostname() as a library function that calls uname(2) and copies up to len bytes from the returned nodename field into name. Having performed the copy, the function then checks if the length of the nodename was greater than or equal to len, and if it is, then the function returns -1 with errno set to ENAMETOOLONG; in this case, a terminating null byte is not included in the returned name. Versions of glibc before 2.2 handle the case where the length of the nodename was greater than or equal to len differently: nothing is copied into name and the function returns -1 with errno set to ENAMETOOLONG.
SEE ALSO
hostname(1), getdomainname(2), setdomainname(2), uname(2)
COLOPHON
This page is part of release 4.09 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.
More Linux Commands
manpages/Apache2::Build.3pm.html
Apache2::Build(3pm) - Methods for locating and parsing bits
This module provides methods for locating and parsing bits of Apache source code. Since mod_perl remembers what build options were used to build it, you can use
manpages/in_wchnstr.3ncurses.html
in_wchnstr(3ncurses) - get an array of complex characters an
These functions return an array of complex characters in wchstr, starting at the current cursor position in the named window. Attributes (rendition) are stored
manpages/xdr_callhdr.3.html
xdr_callhdr(3) - library routines for remote procedure calls
These routines allow C programs to make procedure calls on other machines across the network. First, the client calls a procedure to send a data packet to the s
manpages/pkaction.1.html
pkaction(1) - Get details about a registered action.........
pkaction is used to obtain information about registered polkit actions. If called without --action-id then all actions are displayed. Otherwise the action actio
manpages/group.conf.5.html
group.conf(5) - configuration file for the pam_group module
group.conf.5 - The pam_group PAM module does not authenticate the user, but instead it grants group memberships (in the credential setting phase of the authenti
manpages/smbta-util.8.html
smbta-util(8) - control encryption in VFS smb_traffic_analyz
This tool is part of the samba(1) suite. smbta-util is a tool to ease the configuration of the vfs_smb_traffic_analyzer module regarding data encryption. The us
manpages/ldap_install_tls.3.html
ldap_install_tls(3) - LDAP TLS initialization routines......
These routines are used to initiate TLS processing on an LDAP session. ldap_start_tls_s() sends a StartTLS request to a server, waits for the reply, and then in
manpages/x11perfcomp.1.html
x11perfcomp(1) - X11 server performance comparison program
The x11perfcomp program merges the output of several x11perf(1) runs into a nice tabular format. It takes the results in each file, fills in any missing test re
manpages/TAP::Parser::Result::Bailout.3pm.html
TAP::Parser::Result::Bailout(3pm) - Bailout result token....
This is a subclass of TAP::Parser::Result. A token of this class will be returned if a bail out line is encountered. 1..5 ok 1 - woo hooo! Bail out! Well, so mu
manpages/magic.5.html
magic(5) - file command's magic pattern file (Man Page).....
This manual page documents the format of the magic file as used by the file(n) command, version 5.19. The file(n) command identifies the type of a file using, a
manpages/clnt_geterr.3.html
clnt_geterr(3) - library routines for remote procedure calls
These routines allow C programs to make procedure calls on other machines across the network. First, the client calls a procedure to send a data packet to the s
manpages/mouseinterval_sp.3ncurses.html
mouseinterval_sp(3ncurses) - curses screen-pointer extension
This implementation can be configured to provide a set of functions which improve the ability to manage multiple screens. This feature can be added to any of th
