GETRLIMIT

Section: Linux Programmer's Manual (2)
Updated: 23 July 1993
Index Return to Main 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)


 

Index

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
CONFORMING TO
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 12:25:30 GMT, March 22, 2025