diff options
Diffstat (limited to 'man2/sysinfo.2')
-rw-r--r-- | man2/sysinfo.2 | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/man2/sysinfo.2 b/man2/sysinfo.2 new file mode 100644 index 000000000..a2ec8e9f3 --- /dev/null +++ b/man2/sysinfo.2 @@ -0,0 +1,88 @@ +.\" -*- 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á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, +.B sysinfo +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 */ + char _f[20-2*sizeof(long)-sizeof(int)]; /* Padding for libc5 */ +}; +.fi +.RE + +and the sizes are given as multiples of \fImem_unit\fP bytes. + +.B sysinfo +provides a simple way of getting overall system statistics. This is more +portable than reading \fI/dev/kmem\fP. +For an example of its use, see intro(2). +.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" +This function is Linux-specific, and should not be used in programs +intended to be portable. +.sp +The Linux kernel has a sysinfo system call since 0.98.pl6. +Linux libc contains a sysinfo() routine since 5.3.5, and +glibc has one since 1.90. +.SH "SEE ALSO" +.BR proc (5) |