*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> getrlimit (2)              



NAME    [Toc]    [Back]

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

SYNOPSIS    [Toc]    [Back]

       #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    [Toc]    [Back]

       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 {
		 rlim_t    rlim_cur;
		 rlim_t    rlim_max;

       getrusage  returns  the	current  resource  usages, for a who of either

	    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    [Toc]    [Back]

       On success, zero is returned.  On error, -1 is returned, and  errno  is
       set appropriately.

ERRORS    [Toc]    [Back]

       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    [Toc]    [Back]

       SVr4, BSD 4.3

NOTE    [Toc]    [Back]

       Including <sys/time.h> is not required these days, but increases portability.
	(Indeed, struct timeval is defined in <sys/time.h>.)

       The above struct was taken from BSD 4.3 Reno.  Not all fields are meaningful
 under Linux.  Right now (Linux 2.4) only	the  fields  ru_utime,
       ru_stime, ru_minflt, ru_majflt, and ru_nswap are maintained.

SEE ALSO    [Toc]    [Back]

       quotactl(2), ulimit(3)

Linux				  2001-05-04			  GETRLIMIT(2)
[ Back ]
 Similar pages
Name OS Title
quota FreeBSD display disk usage and limits
quota Tru64 displays disk usage and limits
quota HP-UX display disk usage and limits
quota IRIX display disk usage and limits
quota OpenBSD display disk usage and limits
limits FreeBSD set or display process resource limits
rad_get_num Tru64 Query resource complements of a Resource Affinity Domain (libnuma)
rad_get_physmem Tru64 Query resource complements of a Resource Affinity Domain (libnuma)
rad_get_info Tru64 Query resource complements of a Resource Affinity Domain (libnuma)
rad_get_max Tru64 Query resource complements of a Resource Affinity Domain (libnuma)
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service