Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ setrlimit(2) — UTek W2.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

csh(1csh)

sh(1sh)



GETRLIMIT(2)            COMMAND REFERENCE            GETRLIMIT(2)



NAME
     getrlimit, setrlimit - control maximum system resource
     consumption

SYNOPSIS
     #include <sys/time.h>
     #include <sys/resource.h>

     getrlimit(resource, rlp)
     int resource;
     struct rlimit *rlp;

     setrlimit(resource, rlp)
     int resource;
     struct rlimit *rlp;

DESCRIPTION
     Limits on the consumption of system resources by the current
     process and each process it creates may be obtained with the
     getrlimit call, and set with the setrlimit call.

     Getrlimit returns the limits on the current process in the
     rlimit structure pointed to by rlp; setrlimit uses the
     values in the structure to set the process limits.

     The resource parameter is one of the following, defined in
     <sys/resource.h>:

     RLIMIT_DATA      the maximum size, in bytes, of the data
                      segment for a process; this defines how far
                      a program may extend its break with the
                      sbrk(2) system call.

     RLIMIT_STACK     the maximum size, in bytes, of the stack
                      segment for a process; this defines how far
                      a program's stack segment may be extended,
                      either automatically by the system, or
                      explicitly by a user with the sbrk(2)
                      system call.

     RLIMIT_RSS       the maximum size, in bytes, a process's
                      resident set size may grow to.  This
                      imposes a limit on the amount of physical
                      memory to be given to a process; if memory
                      is tight, the system will prefer to take
                      memory from processes which are exceeding
                      their declared resident set size.

     A resource limit is specified as a soft limit and a hard
     limit.  When a soft limit is exceeded a process may receive
     a signal (for example, if the cpu time is exceeded), but it
     will be allowed to continue execution until it reaches the



Printed 10/17/86                                                1





GETRLIMIT(2)            COMMAND REFERENCE            GETRLIMIT(2)



     hard limit (or modifies its resource limit).  The rlimit
     structure is used to specify the hard and soft limits on a
     resource, defined in <sys/resource.h>:

          struct rlimit {
               long rlim_cur; /* current (soft) limit */
               long rlim_max; /* hard limit */
          };

     Only the super-user may raise the hard limits.  Other users
     may only alter rlim_cur within the range from 0 to rlim_max
     or (irreversibly) lower rlim_max.

     An "infinite" value for a limit is defined as
     RLIMIT_INFINITY (0x7fffffff) in <sys/resource.h>.

     Because this information is stored in the per-process
     information, this system call must be executed directly by
     the shell if it is to affect all future processes created by
     the shell; limit is thus a built-in command to csh(1csh).

     The system refuses to extend the data or stack space when
     the limits would be exceeded in the normal way: a break call
     fails if the data space limit is reached, or the process is
     killed when the stack limit is reached (since the stack
     cannot be extended, there is no way to send a signal!).

     A file I/O operation which would create a file which is too
     large will cause a signal SIGXFSZ to be generated, this
     normally terminates the process, but may be caught.  When
     the soft cpu time limit is exceeded, a signal SIGXCPU is
     sent to the offending process.

DIAGNOSTICS
     The possible errors are:

     [EFAULT]
         The address specified for rlp is invalid.

     [EPERM]
         The limit specified to setrlimit would have raised the
         maximum limit value, and the caller is not the super-
         user.

     [EINVAL]
         The resource argument is not a valid value.

RETURN VALUE
     A 0 return value indicates that the call succeeded, changing
     or returning the resource limit.   A return value of -1
     indicates that an error occurred, and an error code is
     stored in the global location errno.



Printed 10/17/86                                                2





GETRLIMIT(2)            COMMAND REFERENCE            GETRLIMIT(2)



SEE ALSO
     csh(1csh), sh(1sh).





















































Printed 10/17/86                                                3





































































%%index%%
na:72,107;
sy:179,1154;
de:1333,2063;3540,1538;
di:5078,475;
rv:5553,318;
se:6015,150;
%%index%%000000000120

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026