Printable Version


Hpe3000 Resources

MPE To HP-UX Cross-Reference

System Administration Cross-Reference

Commands Cross-Reference

Programming API Cross-Reference

Join Our Mailing List
Contact Us

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 e3000.training@hp.com.


      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

	   char sysname[];
	   char nodename[];
	   char release[];
	   char version[];
	   char machine[];
	   char idnumber[];

      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
      returns ia64.

      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 .

    Security Restrictions
      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
			appropriate privileges.

      [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),
      nodehostnamesize(5), privileges(5).

      uname(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1