MPE to HP-UX System Administration Functions Cross-Reference
Please select a system administration topic from the list below to get a comparison of that topic between MPE/iX and HP-UX.
Note that some of the recommended HP-UX commands are only available as part of extra cost add-on HP products. Also note that some HP-UX system administration tools are available from HP partners.
Documentation on the full set of HP-UX commands is available in the HP-UX Reference Volumes.
This is a work in progress and additional topics will be added soon.
Please send any questions or comments about this transition tool to firstname.lastname@example.org.
uname(), setuname() - get information about computer system; set node
name (system name)
int uname(struct utsname *name);
int setuname(const char *name, size_t namelen);
The uname() system call places information identifying the computer
system in the utsname structure pointed to by name.
The utsname structure, defined in , is set up as
Each field is a null-terminated string.
The sysname field contains the name of the operating system, HP-UX on
standard HP-UX systems.
The nodename field contains the name by which the computer system is
known in a communications network.
The release field contains the release identifier of the operating
system, such as B.11.23.
The version field contains additional information about the operating
system. This value can change in future releases. The first
character of the version field identifies the license level:
A Two-user system
B 16-user system
C 32-user system
D 64-user system
E 8-user system
U 128-user, 256-user, or unlimited-user system
The machine field contains the hardware and model identifiers of the
computer system. On Itanium(R)-based systems, this field always
The idnumber field contains a unique identification number within that
class of hardware, possibly a hardware or software serial number.
This field contains a null string if there is no identification
number. On Itanium(R)-based systems this number may not be unique.
To get a unique id, use the _CS_MACHINE_IDENT option of confstr.
The setuname() system call sets the node name (system name), as
returned in the nodename field of the utsname structure, to name,
which has a length of namelen characters. This is usually executed by
/sbin/init.d/hostname at system boot time. Names are limited to
UTSLEN - 1 characters; UTSLEN is defined in .
The actions associated with this system call require the PRIV_SYSATTR
privilege (SYSATTR). Processes owned by the superuser have this
privilege. Processes owned by other users may have this privilege,
depending on system configuration.
See privileges(5) for more information about privileged access on
systems that support fine-grained privileges.
uname() and setuname() return the following values:
n Successful completion. n is a nonnegative value.
-1 Failure. errno is set to indicate the error.
The uname() function may return truncated results when the non-
expanded version of the utsname structure is used. See WARNINGS.
If uname() or setuname() fails, errno is set to one of the following
[EFAULT] name points to an illegal address. The reliable
detection of this error is implementation dependent.
[EPERM] setuname() was attempted by a process lacking
[EOVERFLOW] This error may be detected and indicates that the
utsname structure version used does not accommodate
the full values of one or more fields.
uname() returns one of two versions of the utsname structure:
+ HP-UX compatible version (compatible with all HP-UX versions)
+ Expanded version of the structure which can accommodate larger
The compatible structure is used by default. To use the expanded
structure, see nodehostnamesize(5).
If the administrator has configured a node name with a length larger
than 8 bytes, the compatible version of the utsname structure, as
returned by uname(), contains just the first 8 bytes (plus null) in
the utsname.nodename field. In a future release the field will not
contain any data bytes if the entire node name cannot fit.
Setting a node name of more than 8 bytes with setuname() is only
possible with the appropriate configuration options enabled. It is
strongly recommended that all related documentation be completely
understood before setting a larger node name. A node name larger than
8 bytes can cause anomalous behavior or failure in applications which
use the uname command or the uname() system function to access the
It is recommended that, whenever possible, programs use the host name
as returned by the gethostname() function rather than the
utsname.nodename field. It can be given a sufficiently large buffer
to avoid truncation issues. See gethostname(2) for more information.
uname() was developed by AT&T and HP.
hostname(1), uname(1), setuname(1M), gethostname(2), sethostname(2),
uname(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1