IceWalkers.com - Linux Software downloads and news
Name : Password :
Linux SoftwareLinux RPMLinux HowtosLink UsAboutAdvertise

getrlimit (2)

XXX
XXX WARNING: old character encoding and/or character set
XXX
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>

       intgetrlimit(int resource,structrlimit*rlim);
       intgetrusage(int who,structrusage*usage);
       intsetrlimit(int resource,conststructrlimit*rlim);

DESCRIPTION
       getrlimit and setrlimit get and set resource limits respectively.  Each
       resource has an associated soft and  hard  limit,  as  defined  by  the
       rlimit  structure  (the  rlim  argument  to  both getrlimit() and setr-
       limit()):

            struct rlimit {
                rlim_t rlim_cur;   /* Soft limit */
                rlim_t rlim_max;   /* Hard limit (ceiling
                                      for rlim_cur) */
            };

       The soft limit is the value that the kernel  enforces  for  the  corre-
       sponding  resource.   The  hard  limit  acts  as a ceiling for the soft
       limit: an unprivileged process may only set its soft limit to  a  value
       in  the range from 0 up to the hard limit, and (irreversibly) lower its
       hard limit.  A privileged process may make arbitrary changes to  either
       limit value.

       The  value  RLIM_INFINITY  denotes  no limit on a resource (both in the
       structure returned by getrlimit() and in the structure passed to  setr-
       limit()).

       resource must be one of:

       RLIMIT_CPU
              CPU  time  limit  in seconds.  When the process reaches the soft
              limit, it is sent a SIGXCPU signal.  The default action for this
              signal  is to terminate the process.  However, the signal can be
              caught, and the handler can return control to the main  program.
              If  the  process  continues to consume CPU time, it will be sent
              SIGXCPU once per second until the  hard  limit  is  reached,  at
              which  time  it  is  sent SIGKILL.  (This latter point describes
              Linux 2.2 and 2.4 behaviour.  Implementations vary in  how  they
              treat  processes which continue to consume CPU time after reach-
              ing the soft limit.  Portable applications that  need  to  catch
              this  signal  should  perform  an orderly termination upon first
              receipt of SIGXCPU.)

       RLIMIT_DATA
              The maximum size of  the  process's  data  segment  (initialized
              data,  uninitialized  data, and heap).  This limit affects calls
              to brk() and sbrk(), which  fail  with  the  error  ENOMEM  upon
              encountering the soft limit of this resource.

       RLIMIT_FSIZE
              The maximum size of files that the process may create.  Attempts
              to extend a file beyond this  limit  result  in  delivery  of  a
              SIGXFSZ  signal.   By default, this signal terminates a process,
              but a process can catch this signal instead, in which  case  the
              relevant  system call (e.g., write(), truncate()) fails with the
              error EFBIG.

       RLIMIT_LOCKS
              A limit on the combined number  of  flock()  locks  and  fcntl()
              leases that this process may establish (Linux 2.4 and later).

       RLIMIT_MEMLOCK
              The maximum number of bytes of virtual memory that may be locked
              into RAM using mlock() and mlockall().

       RLIMIT_NOFILE
              Specifies a value one greater than the maximum  file  descriptor
              number  that  can  be opened by this process.  Attempts (open(),
              pipe(), dup(), etc.)  to  exceed  this  limit  yield  the  error
              EMFILE.

       RLIMIT_NPROC
              The maximum number of processes that can be created for the real
              user ID of the calling process.  Upon encountering  this  limit,
              fork() fails with the error EAGAIN.

       RLIMIT_RSS
              Specifies  the  limit  (in  pages) of the process's resident set
              (the number of virtual pages resident in RAM).  This limit  only
              has  effect  in Linux 2.4 onwatrds, and there only affects calls
              to madvise() specifying MADVISE_WILLNEED.

       RLIMIT_STACK
              The maximum size of the process stack, in bytes.  Upon  reaching
              this  limit, a SIGSEGV signal is generated.  To handle this sig-
              nal, a process must employ an alternate  signal  stack  (sigalt-
              stack(2)).

       RLIMIT_OFILE is the BSD name for RLIMIT_NOFILE.

       getrusage  returns  the  current  resource  usages, for a who of either
       RUSAGE_SELF or RUSAGE_CHILDREN.  The former asks for resources used  by
       the  current  process,  the  latter  for resources used by those of its
       children that have terminated and have been waited for.

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

RETURNVALUE
       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.

       EINVALgetrlimit  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.

CONFORMINGTO
       SVr4, BSD 4.3

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

       On  Linux,  if  the  disposition  of SIGCHLD is set to SIG_IGN then the
       resource usages of child processes are automatically  included  in  the
       value  returned  by RUSAGE_CHILDREN, although POSIX 1003.1-2001 explic-
       itly prohibits this.

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

SEEALSO
       dup(2), fcntl(2), fork(2),  mlock(2),  mlockall(2),  mmap(2),  open(2),
       quotactl(2),  sbrk(2),  wait3(2),  wait4(2), malloc(3), ulimit(3), sig-
       nal(7)



Linux                             2002-07-09                      GETRLIMIT(2)

_Exitgetsockoptoutwshmat
_exitgettidoutw_pshmctl
_llseekgettimeofdaypauseshmdt
_newselectgetuidpersonalityshmget
_sysctlgttypipeshmop
acceptidlepivot_rootshutdown
accessinbpollsigaction
acctinb_pprctlsigaltstack
adjtimexinlpreadsigblock
afs_syscallinl_pprofsiggetmask
alarminsbpselectsigmask
alloc_hugepagesinslptracesignal
arch_prctlinswpwritesigpause
bdflushintroquotactlsigpending
bindinwreadsigprocmask
breakinw_preaddirsigqueue
brkioctlreadlinksigreturn
cacheflushioctl_listreadvsigsetmask
capgetiopermrebootsigsuspend
capsetioplrecvsigtimedwait
chdiripcrecvfromsigvec
chmodkillrecvmsgsigwaitinfo
chownkillpgrenamesocket
chrootlchownrmdirsocketcall
clonelinksbrksocketpair
closelistensched_get_priority_maxssetmask
connectllseeksched_get_priority_minstat
creatlocksched_getaffinitystatfs
duplseeksched_getparamstime
dup2lstatsched_getschedulerstty
execvemadvisesched_rr_get_intervalswapoff
exitmincoresched_setaffinityswapon
fchdirmkdirsched_setparamsymlink
fchmodmknodsched_setschedulersync
fchownmlocksched_yieldsyscall
fcntlmlockallselectsyscalls
fdatasyncmmapselect_tutsysctl
flockmmap2semctlsysfs
forkmodify_ldtsemgetsysinfo
free_hugepagesmountsemopsyslog
fstatmprotectsendtime
fstatfsmpxsendfiletimes
fsyncmremapsendmsgtkill
ftruncatemsgctlsendtotruncate
futexmsggetsetcontextumask
getcontextmsgopsetdomainnameumount
getdentsmsgrcvsetegidumount2
getdomainnamemsgsndseteuiduname
getdtablesizemsyncsetfsgidundocumented
getegidmunlocksetfsuidunimplemented
geteuidmunlockallsetgidunlink
getgidmunmapsetgroupsuselib
getgroupsnanosleepsethostidustat
gethostidnfsservctlsethostnameutime
gethostnamenicesetitimerutimes
getitimerobsoletesetpgidvfork
getpagesizeoldfstatsetpgrpvhangup
getpeernameoldlstatsetpriorityvm86
getpgidoldoldunamesetregidwait
getpgrpoldstatsetresgidwait3
getpidoldunamesetresuidwait4
getppidopensetreuidwaitpid
getpriorityoutbsetrlimitwrite
getresgidoutb_psetsidwritev
getresuidoutlsetsockopt 
getrlimitoutl_psettimeofday 
getrusageoutsbsetuid 
getsidoutslsetup 


My Money 2.0.49
Personal financial software
Linux Kernel 2.6 2.6.32-rc8
Linux Kernel
GCstar 1.5.0
Personal collections manager
ImageMagick 6.5.7.9
ImageMagick image processing studio
BibleTime 2.4
Bible study software for Linux / KDE
PHP 5.3.1
Server-side, cross-platform, HTML embedded scripting language.
LFTP 4.0.4
Shell-like command line ftp client.
GNOME 2.29.2
GNOME desktop environment
Midgard 9.09.0
Web application development and publishing platform
Totem 2.28.4
Movie player for Gnome
Free IT Magazines, White Papers, eBooks, and more !
Oracle Magazine

Contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more.

Vulnerability Management for Dummies

Get all the Facts and See How to Implement a Successful Vulnerability Management Program.

Website Magazine

Has tapped premier talent in the Internet industry for our content and each and every issue will contain practical advice and insights for website owners.

Linux Software Map
Find Linux RPM
Best Rated Linux Software
Most Rated Linux Software
Linux Distributions
Linux Howtos
Quick Survey

Please take our survey and help us improve our website to serve you better.

Thank you.
Linux Software
Linux / IT Resources
Site Resources
Google
Privacy Policy
Contact Us
Submit Software
Advertising info