sysinfo(2) sysinfo(2) NAME sysinfo - get and set system information strings SYNOPSIS #include <sys/systeminfo.h> long sysinfo (int command, char *buf, long count); DESCRIPTION sysinfo copies information relating to the UNIX system on which the process is executing into the buffer pointed to by buf; sysinfo can also set certain information where appropriate commands are available. count is the size of the buffer. The POSIX P1003.1 interface sysconf [see sysconf(2)] provides a similar class of configuration information, but returns an integer rather than a string. The commands available are: SI_SYSNAME Copy into the array pointed to by buf the string that would be returned by uname [see uname(2)] in the sysname field. This is the name of the implementation of the operating system, for example, System V or UTS. SI_HOSTNAME Copy into the array pointed to by buf a string that names the present host machine. This is the string that would be returned by uname in the nodename field. This hostname or nodename is often the name the machine is known by locally. The hostname is the name of this machine as a node in some network; different networks may have different names for the node, but presenting the nodename to the appropriate network Directory or name-to-address mapping service should produce a transport end point address. The name may not be fully qualified. Internet host names may be up to 256 bytes in length (plus the terminating null). SI_SET_HOSTNAME Copy the null-terminated contents of the array pointed to by buf into the string maintained by the kernel whose value will be returned by succeeding calls to sysinfo with the command SI_HOSTNAME. This command requires that the effective-user-id be super-user. SI_RELEASE Copy into the array pointed to by buf the string that would be returned by uname in the release field. Typical values might be 4.0 or 3.2. SI_VERSION Copy into the array pointed to by buf the string that would be returned by uname in the version field. The syntax and semantics of this string are defined by the system provider. Under IRIX, this is the date and time that the system was generated and has the form mmddhhmm. SI_MACHINE Copy into the array pointed to by buf the string that would be returned by uname in the machine field, for example, IP27 or IP30. SI_ARCHITECTURE Copy into the array pointed to by buf a string describing the instruction set architecture of the current system, for example, MIPS-II, m32100, or i80486. These names may not match predefined names in the C language compilation system. SI_HW_PROVIDER Copies the name of the hardware manufacturer into the array pointed to by buf. SI_HW_SERIAL Copy into the array pointed to by buf a string which is the ASCII representation of the 32 bit hardware-specific identifier of the physical machine on which the system call is executed. Note that this may be implemented in Read- Only Memory, via software constants set when building the operating system, or by other means, and may contain non- numeric characters. It is anticipated that manufacturers will not issue the same ``32-bit identifier'' to more than one physical machine. The pair of strings returned by SI_HW_PROVIDER and SI_HW_SERIAL is likely to be unique across all vendor's System V implementations. SI_SRPC_DOMAIN This command is not supported under IRIX. SI_SET_SRPC_DOMAIN This command is not supported under IRIX. SI_INITTAB_NAME Copy into the array pointed to by buf a string that is the pathname of the inittab file used by the currently running bootable operating system. This is the same as the file specified by the INITTAB keyword found in the system file [see system(4)]. _MIPS_SI_VENDOR Copy into the array pointed to by buf a string which is the name of the company providing the system. The vendor is the company actually selling the product rather than the company which built the product. Eg: "Silicon Graphics Inc". _MIPS_SI_OS_PROVIDER Copy into the array pointed to by buf a string which is the name of the company providing the operating system. This is the name of the company which built the operating system. Eg: "Silicon Graphics Inc". _MIPS_SI_OS_NAME Copy into the array pointed to by buf a string which is the name of the operating system. Eg: "IRIX". _MIPS_SI_HW_NAME Copy into the array pointed to by buf a string which is the name of the hardware platform. This is the name of the platform in the pricelist. Eg: "IP19" _MIPS_SI_NUM_PROCESSORS Copy into the array pointed to by buf a string which is the ASCII representation of the number of configured processors. Eg: "16" _MIPS_SI_HOSTID Copy into the array pointed to by buf a string which is the ASCII representation of the host id in hex. This example uses sgi.sgi.com, which has an internet address of 192.26.75.5. Eg: "c01a4b05" _MIPS_SI_OSREL_MAJ Copy into the array pointed to by buf a string which is the ASCII representation of the OS major release number. _MIPS_SI_OSREL_MIN Copy into the array pointed to by buf a string which is the ASCII representation of the OS minor release number. _MIPS_SI_OSREL_PATCH Copy into the array pointed to by buf a string which is the ASCII representation of the OS patch release number. _MIPS_SI_PROCESSORS Copy into the array pointed to by buf a string which is the processor type. In the case of a multiprocessor, this will be a comma separated list with _MIPS_SI_NUM_PROCESSORS entries. _MIPS_SI_AVAIL_PROCESSORS Copy into the array pointed to by buf a string which is the ASCII representation of the number of processors available for running unrestricted processes. sysinfo fails if one or both of the following are true: EPERM The process does not have appropriate privilege for a SET command. EINVAL buf does not point to a valid address, or the data for a SET command exceeds the limits established by the implementation. DIAGNOSTICS Upon successful completion, the value returned indicates the buffer size in bytes required to hold the complete value and the terminating null character. If this value is no greater than the value passed in count, the entire string was copied; if this value is greater than count, the string copied into buf has been truncated to count-1 bytes plus a terminating null character. Otherwise, a value of -1 is returned and errno is set to indicate the error. USAGE There is in many cases no corresponding programmatic interface to set these values; such strings are typically settable only by the system administrator modifying entries in the master.d directory or the code provided by the particular OEM reading a serial number or code out of read-only memory, or hard-coded in the version of the operating system. A good starting guess for count is 257, which is likely to cover all strings returned by this interface in typical installations. SEE ALSO uname(2), gethostname(3), gethostid(3), sysconf(3C) Page 4