man-pages/man2/sysinfo.2

94 lines
3.0 KiB
Groff
Raw Normal View History

2004-11-03 13:51:07 +00:00
.\" -*- nroff -*-
.\"
.\" (C)opyright 1993 by Dan Miner (dminer@nyx.cs.du.edu)
.\"
.\" Permission is granted to freely distribute or modify this file
.\" for the purpose of improving Linux or its documentation efforts.
.\" If you modify this file, please put a date stamp and HOW you
.\" changed this file. Thanks. -DM
.\"
.\" Modified Sat Jul 24 12:35:12 1993 by Rik Faith <faith@cs.unc.edu>
.\" Modified Tue Oct 22 22:29:51 1996 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified Mon Aug 25 16:06:11 1997 by Nicol<6F>s Lichtmaier <nick@debian.org>
.\"
.TH SYSINFO 2 1997-08-25 "Linux 2.0" "Linux Programmer's Manual"
.SH NAME
sysinfo \- returns information on overall system statistics
.SH SYNOPSIS
.B #include <sys/sysinfo.h>
.sp
.BI "int sysinfo(struct sysinfo *" info );
.SH DESCRIPTION
Until Linux 2.3.16,
.BR sysinfo ()
2004-11-03 13:51:07 +00:00
used to return information in the following structure:
.RS
.nf
struct sysinfo {
long uptime; /* Seconds since boot */
unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
unsigned long totalram; /* Total usable main memory size */
unsigned long freeram; /* Available memory size */
unsigned long sharedram; /* Amount of shared memory */
unsigned long bufferram; /* Memory used by buffers */
unsigned long totalswap; /* Total swap space size */
unsigned long freeswap; /* swap space still available */
unsigned short procs; /* Number of current processes */
char _f[22]; /* Pads structure to 64 bytes */
};
.fi
.RE
and the sizes were given in bytes. Since Linux 2.3.23 (i386), 2.3.48
(all architectures) the structure is
.RS
.nf
struct sysinfo {
long uptime; /* Seconds since boot */
unsigned long loads[3]; /* 1, 5, and 15 minute load averages */
unsigned long totalram; /* Total usable main memory size */
unsigned long freeram; /* Available memory size */
unsigned long sharedram; /* Amount of shared memory */
unsigned long bufferram; /* Memory used by buffers */
unsigned long totalswap; /* Total swap space size */
unsigned long freeswap; /* swap space still available */
unsigned short procs; /* Number of current processes */
unsigned long totalhigh; /* Total high memory size */
unsigned long freehigh; /* Available high memory size */
unsigned int mem_unit; /* Memory unit size in bytes */
2005-07-07 08:27:03 +00:00
char _f[20\-2*sizeof(long)\-sizeof(int)]; /* Padding for libc5 */
2004-11-03 13:51:07 +00:00
};
.fi
.RE
and the sizes are given as multiples of \fImem_unit\fP bytes.
.BR sysinfo ()
2004-11-03 13:51:07 +00:00
provides a simple way of getting overall system statistics. This is more
portable than reading \fI/dev/kmem\fP.
2005-10-19 14:48:35 +00:00
For an example of its use, see
.BR intro (2).
2004-11-03 13:51:07 +00:00
.SH "RETURN VALUE"
On success, zero is returned. On error, \-1 is returned, and
.I errno
is set appropriately.
.SH ERRORS
.TP
.B EFAULT
pointer to \fIstruct\ sysinfo\fP is invalid
.SH "CONFORMING TO"
2006-12-17 01:34:44 +00:00
This function is Linux specific, and should not be used in programs
2004-11-03 13:51:07 +00:00
intended to be portable.
.sp
2005-10-19 14:48:35 +00:00
The Linux kernel has a
.BR sysinfo ()
system call since 0.98.pl6.
Linux libc contains a
.BR sysinfo ()
routine since 5.3.5, and
2004-11-03 13:51:07 +00:00
glibc has one since 1.90.
.SH "SEE ALSO"
.BR proc (5)