UNAME(3) | Library Functions Manual | UNAME(3)

# NAME

`uname` — get system identification

# SYNOPSIS

`#include <sys/utsname.h>`

int
`uname`(struct utsname *name);

# DESCRIPTION

The `uname`() function stores NUL-terminated strings of information identifying the current system into the structure referenced by name.

The utsname structure is defined in the `<sys/utsname.h>` header file, and contains the following members:

sysname
  Name of the operating system implementation.
nodename
  Network name of this machine.
release
  Release level of the operating system.
version
  Version level of the operating system.
machine
  Machine hardware platform.

These are the same strings that can be displayed with uname(1). Because their format and meaning depends on the operating system, trying to parse or interpret them is discouraged in portable code. The only reasonable way an application program can use them is for displaying them to the user.

# RETURN VALUES

The `uname`() function returns a non-negative value if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

# ERRORS

The `uname`() function may fail and set errno for any of the errors specified for the library function sysctl(2).

# SEE ALSO

uname(1), sysctl(2)

# STANDARDS

The `uname`() function conforms to IEEE Std 1003.1-1988 (“POSIX.1”).

# HISTORY

The `uname`() function first appeared in PWB/UNIX 1.0 and was reimplemented for 4.4BSD.

October 9, 2023 | Debian