Penguin

GETRLIMIT

GETRLIMIT

NAME SYNOPSIS DESCRIPTION RETURN VALUE ERRORS CONFORMING TO NOTE SEE ALSO


NAME

getrlimit, getrusage, setrlimit - get/set resource limits and usage

SYNOPSIS

#include

  1. include __
  2. include __

int getrlimit (int resource__, struct rlimit

  • rlim);

int getrusage (int who, struct rusage

  • usage);

int setrlimit (int resource, const struct rlimit *rlim);__

DESCRIPTION

getrlimit and setrlimit get and set resource limits respectively. resource should be one of:

RLIMIT_CPU /* CPU time in seconds / RLIMIT_FSIZE / Maximum filesize / RLIMIT_DATA / max data size / RLIMIT_STACK / max stack size / RLIMIT_CORE / max core file size / RLIMIT_RSS / max resident set size / RLIMIT_NPROC / max number of processes / RLIMIT_NOFILE / max number of open files / RLIMIT_MEMLOCK / max locked-in-memory address space*/ RLIMIT_AS /* address space (virtual memory) limit

  • /

A resource may unlimited if you set the limit to RLIM_INFINITY. RLIMIT_OFILE is the BSD name for RLIMIT_NOFILE.

The rlimit structure is defined as follows :

struct rlimit { rlim_t rlim_cur; rlim_t rlim_max; };

getrusage returns the current resource usages, for a who of either RUSAGE_SELF or RUSAGE_CHILDREN.

struct rusage { struct timeval ru_utime; /* user time used / struct timeval ru_stime; / system time used / long ru_maxrss; / maximum resident set size / long ru_ixrss; / integral shared memory size / long ru_idrss; / integral unshared data size / long ru_isrss; / integral unshared stack size / long ru_minflt; / page reclaims / long ru_majflt; / page faults / long ru_nswap; / swaps / long ru_inblock; / block input operations / long ru_oublock; / block output operations / long ru_msgsnd; / messages sent / long ru_msgrcv; / messages received / long ru_nsignals; / signals received / long ru_nvcsw; / voluntary context switches / long ru_nivcsw; / involuntary context switches */ };

RETURN VALUE

On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

ERRORS

EFAULT

rlim or usage points outside the accessible address space.

EINVAL

getrlimit or setrlimit is called with a bad resource, or getrusage is called with a bad who.

EPERM

A non-superuser tries to use setrlimit() to increase the soft or hard limit above the current hard limit, or a superuser tries to increase RLIMIT_NOFILE above the current kernel maximum.

CONFORMING TO

SVr4, BSD 4.3

NOTE

Including is not required these days, but increases portability. (Indeed, struct timeval is defined in .)

The above struct was taken from BSD 4.3 Reno. Not all fields are meaningful under Linux. Right now (Linux 2.4) only the fields ru_utime, ru_stime, ru_minflt, ru_majflt, and ru_nswap are maintained.

SEE ALSO

quotactl(2), ulimit(3)


This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.