man-pages/man2/sysinfo.2

96 lines
3.1 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>
.\"
2007-11-15 03:21:33 +00:00
.TH SYSINFO 2 2007-11-15 "Linux" "Linux Programmer's Manual"
2004-11-03 13:51:07 +00:00
.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:
.nf
2007-04-03 14:04:54 +00:00
.in +0.25i
2004-11-03 13:51:07 +00:00
struct sysinfo {
2007-04-03 14:04:54 +00:00
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 */
2004-11-03 13:51:07 +00:00
};
2007-04-03 14:04:54 +00:00
.in -0.25i
2004-11-03 13:51:07 +00:00
.fi
2007-04-03 14:04:54 +00:00
.PP
and the sizes were given in bytes.
2004-11-03 13:51:07 +00:00
2007-04-03 14:04:54 +00:00
Since Linux 2.3.23 (i386), 2.3.48
(all architectures) the structure is:
2004-11-03 13:51:07 +00:00
.nf
2007-04-03 14:04:54 +00:00
.in +0.25i
2004-11-03 13:51:07 +00:00
struct sysinfo {
2007-04-03 14:04:54 +00:00
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 */
char _f[20\-2*sizeof(long)\-sizeof(int)]; /* Padding for libc5 */
2004-11-03 13:51:07 +00:00
};
2007-04-03 14:04:54 +00:00
.in -0.25i
2004-11-03 13:51:07 +00:00
.fi
2007-04-03 14:04:54 +00:00
.PP
2004-11-03 13:51:07 +00:00
and the sizes are given as multiples of \fImem_unit\fP bytes.
.BR sysinfo ()
provides a simple way of getting overall system statistics.
This is more
2004-11-03 13:51:07 +00:00
portable than reading \fI/dev/kmem\fP.
.SH "RETURN VALUE"
On success, zero is returned.
On error, \-1 is returned, and
2004-11-03 13:51:07 +00:00
.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 ()
2005-10-19 14:48:35 +00:00
system call since 0.98.pl6.
Linux libc contains a
2005-10-19 14:48:35 +00:00
.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)