sysinfo(2) sysinfo(2)
sysinfo - get and set system information strings
#include <sys/systeminfo.h>
long sysinfo (int command, char *buf, long count);
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.
Page 1
sysinfo(2) sysinfo(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 ReadOnly
Memory, via software constants set when building the
operating system, or by other means, and may contain nonnumeric
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".
Page 2
sysinfo(2) sysinfo(2)
_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:
Page 3
sysinfo(2) sysinfo(2)
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.
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.
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.
uname(2), gethostname(3), gethostid(3), sysconf(3C)
PPPPaaaaggggeeee 4444 [ Back ]
|