Pegasus InfoCorp: Web site design and web software development company

GETRLIMIT (2)

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

    +0.5i

    struct rlimit
    {
            int     rlim_cur;
            int     rlim_max;
    };
    
    -0.5i

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

    +0.5i

    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 */
    };
    
    -0.5i

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) - man2/getrent 2 man2/getrent 2 man2/getrent 2 man2/getrlimit 2