Table of Contents

NAME

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

SYNOPSIS

#include <sys/time.h>
#include <sys/resource.h>
#include <unistd.h>

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 ms */
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 */

The following are not yet implemented [Documenter's note: as of when?]:

RLIMIT_MEMLOCK    /* max locked-in-memory address space*/
RLIMIT_NPROC    /* max number of processes */
RLIMIT_OFILE    /* max number of open files */

A resource may unlimited if you set the limit to RLIM_INFINITY.

The rlimit structure is defined as follows :

struct rlimit
{
   int    rlim_cur;
   int    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

EINVAL
getrlimit or setrlimit is called with a bad resource, or getrusage is called with a bad who.
EPERM
A non-superuser tries to call setrlimit().

CONFORMING TO

BSD 4.3

SEE ALSO

ulimit(2), quota(2)


Table of Contents


www.fiveanddime.net


Google
Web www.fiveanddime.net