The uname() function shall store information identifying the current
system in the structure pointed to by name.
The uname() function uses the utsname structure defined in
The uname() function shall return a string naming the current system in
the character array sysname. Similarly, nodename shall contain
the name of this node within an implementation-defined communications network.
The arrays release and version shall further identify the
operating system. The array machine shall contain a name that
identifies the hardware that the system is running on.
The format of each member is implementation-defined.
The values of the structure members are not constrained to have any relation to
the version of this volume of IEEE Std 1003.1-2001 implemented
in the operating system. An application should instead depend on
_POSIX_VERSION and related constants defined in <unistd.h>.
This volume of IEEE Std 1003.1-2001 does not define the sizes of
the members of the structure and permits them to be of different sizes,
although most implementations define them all to be the same size: eight bytes
plus one byte for the string terminator. That size for nodename is not
enough for use with many networks.
The uname() function originated in System III, System V, and related
implementations, and it does not exist in Version 7 or 4.3 BSD. The values it
returns are set at system compile time in those historical implementations.
4.3 BSD has gethostname() and gethostid(), which return a symbolic
name and a numeric value, respectively. There are related sethostname()
and sethostid() functions that are used to set the values the other two
functions return. The former functions are included in this specification, the
latter are not.
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html