Developer's Daily Unix by Example
  main | java | perl | unix | dev directory | web log
 
 
Main
Unix
Man Pages
   

GETRLIMIT

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
CONFORMING TO
SEE ALSO

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

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
{

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)


copyright 1998-2007, devdaily.com, all rights reserved.
devdaily.com, an alvin j. alexander production.