sysinfo(2) sysinfo(2)
NAME
sysinfo - get and set system information strings
SYNOPSIS
#include <sys/systeminfo.h>
long sysinfo(int command, char *buf, size_t 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(3C)] provides
a similar class of configuration information, but returns
long.
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, UNIX_SV.
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).
Copyright 1994 Novell, Inc. Page 1
sysinfo(2) sysinfo(2)
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 appropriate
privilege.
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.2, 4.0, 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.
SI_MACHINE Copy into the array pointed to by buf the string
that would be returned by uname in the machine
field, for example, i486.
SI_ARCHITECTURE
Copy into the array pointed to by buf a string
describing the instruction set architecture of
the current system, for example, mc68030,
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_SET_HW_PROVIDER
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_HW_PROVIDER. This command requires
appropriate privilege.
SI_HW_SERIAL Copy into the array pointed to by buf a string
which is the ASCII representation of the
hardware-specific serial number 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
Copyright 1994 Novell, Inc. Page 2
sysinfo(2) sysinfo(2)
the operating system, or by other means, and may
contain non-numeric characters. It is
anticipated that manufacturers will not issue
the same ``serial number'' 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 operating system
implementations.
SI_SET_HW_SERIAL
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_HW_SERIAL. This command requires appropriate
privilege.
SI_SRPC_DOMAIN
Copies the Secure Remote Procedure Call domain
name into the array pointed to by buf.
SI_SET_SRPC_DOMAIN
Set the string to be returned by sysinfo with
the SI_SRPC_DOMAIN command to the value
contained in the array pointed to by buf. This
command requires that the effective-user-id be
super-user.
SI_INITTAB 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.
Return Values
On success, sysinfo returns the number of bytes required to
hold the complete information requested and the terminating
null character. If this value is no greater than the value
passed in count, the entire string was copied into buf; if
this value is greater than count, the string copied into buf
has been truncated to count-1 bytes plus a terminating null
character.
On failure, sysinfo returns -1 and sets errno to identify the
error.
Copyright 1994 Novell, Inc. Page 3
sysinfo(2) sysinfo(2)
Errors
In the following conditions, sysinfo fails and sets errno to:
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.
REFERENCES
gethostid(3BSD), gethostname(3BSD), sysconf(3C), System(4),
uname(2)
NOTICES
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.
Copyright 1994 Novell, Inc. Page 4