GETRLIMIT(2)        Linux Programmer's Manual        GETRLIMIT(2)

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

       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
            {
                 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
       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

SEE ALSO
       ulimit(2), quotactl(2)

Linux                      23 July 1993                         1