The Open Group Base Specifications Issue 8
IEEE Std 1003.1-2024
Copyright © 2001-2024 The IEEE and The Open Group

NAME

sys/resource.h — definitions for resource operations

SYNOPSIS

#include <sys/resource.h>

DESCRIPTION

[XSI] [Option Start] The <sys/resource.h> header shall define the following symbolic constants as possible values of the which argument of getpriority() and setpriority():

PRIO_PROCESS
Identifies the who argument as a process ID.
PRIO_PGRP
Identifies the who argument as a process group ID.
PRIO_USER
Identifies the who argument as a user ID.
[Option End]

The <sys/resource.h> header shall define the following type through typedef:

rlim_t
Unsigned integer type used for limit values.

The <sys/resource.h> header shall define the following symbolic constants, which shall have values suitable for use in #if preprocessing directives:

RLIM_INFINITY
A value of rlim_t indicating no limit.
RLIM_SAVED_MAX
A value of type rlim_t indicating an unrepresentable saved hard limit.
RLIM_SAVED_CUR
A value of type rlim_t indicating an unrepresentable saved soft limit.

On implementations where all resource limits are representable in an object of type rlim_t, RLIM_SAVED_MAX and RLIM_SAVED_CUR need not be distinct from RLIM_INFINITY.

[XSI] [Option Start] The <sys/resource.h> header shall define the following symbolic constants as possible values of the who parameter of getrusage():

RUSAGE_SELF
Returns information about the current process.
RUSAGE_CHILDREN
Returns information about children of the current process.
[Option End]

The <sys/resource.h> header shall define the rlimit structure, which shall include at least the following members:

rlim_t rlim_cur  The current (soft) limit.
rlim_t rlim_max  The hard limit.

[XSI] [Option Start] The <sys/resource.h> header shall define the rusage structure, which shall include at least the following members:

struct timeval ru_utime  User time used.
struct timeval ru_stime  System time used.

The <sys/resource.h> header shall define the timeval structure as described in <sys/time.h>. [Option End]

The <sys/resource.h> header shall define the following symbolic constants as possible values for the resource argument of getrlimit() and setrlimit():

RLIMIT_CORE
Limit on size of core image.
RLIMIT_CPU
[XSI] [Option Start] Limit on CPU time per process. [Option End]
RLIMIT_DATA
Limit on data segment size.
RLIMIT_FSIZE
Limit on file size.
RLIMIT_NOFILE
Limit on number of open files.
RLIMIT_STACK
Limit on stack size.
RLIMIT_AS
Limit on address space size.

The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.

[XSI][Option Start]
int  getpriority(int, id_t);
[Option End]
int  getrlimit(int, struct rlimit *);
[XSI][Option Start]
int  getrusage(int, struct rusage *);
int  setpriority(int, id_t, int);
[Option End]
int  setrlimit(int, const struct rlimit *);

[XSI] [Option Start] The <sys/resource.h> header shall define the id_t type through typedef, as described in <sys/types.h>. [Option End]

Inclusion of the <sys/resource.h> header may also make visible all symbols from <sys/time.h>.


The following sections are informative.

APPLICATION USAGE

None.

RATIONALE

None.

FUTURE DIRECTIONS

None.

SEE ALSO

<sys/time.h>, <sys/types.h>

XSH getpriority, getrlimit, getrusage

CHANGE HISTORY

First released in Issue 4, Version 2.

Issue 5

Large File System extensions are added.

Issue 7

This reference page is clarified with respect to macros and symbolic constants.

Issue 8

Austin Group Defects 51 and 1669 are applied, moving the getrlimit() and setrlimit() functions, excluding the RLIMIT_CPU limit, from the XSI option to the Base.

Austin Group Defect 1141 is applied, changing the description of RLIMIT_CORE.

End of informative text.

 

return to top of page

UNIX® is a registered Trademark of The Open Group.
POSIX™ is a Trademark of The IEEE.
Copyright © 2001-2024 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]