summaryrefslogtreecommitdiffstats
path: root/upstream/archlinux/man3p/getrlimit.3p
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/archlinux/man3p/getrlimit.3p')
-rw-r--r--upstream/archlinux/man3p/getrlimit.3p252
1 files changed, 252 insertions, 0 deletions
diff --git a/upstream/archlinux/man3p/getrlimit.3p b/upstream/archlinux/man3p/getrlimit.3p
new file mode 100644
index 00000000..e687ffeb
--- /dev/null
+++ b/upstream/archlinux/man3p/getrlimit.3p
@@ -0,0 +1,252 @@
+'\" et
+.TH GETRLIMIT "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\"
+.SH PROLOG
+This manual page is part of the POSIX Programmer's Manual.
+The Linux implementation of this interface may differ (consult
+the corresponding Linux manual page for details of Linux behavior),
+or the interface may not be implemented on Linux.
+.\"
+.SH NAME
+getrlimit,
+setrlimit
+\(em control maximum resource consumption
+.SH SYNOPSIS
+.LP
+.nf
+#include <sys/resource.h>
+.P
+int getrlimit(int \fIresource\fP, struct rlimit *\fIrlp\fP);
+int setrlimit(int \fIresource\fP, const struct rlimit *\fIrlp\fP);
+.fi
+.SH DESCRIPTION
+The
+\fIgetrlimit\fR()
+function shall get, and the
+\fIsetrlimit\fR()
+function shall set, limits on the consumption of a variety of
+resources.
+.P
+Each call to either
+\fIgetrlimit\fR()
+or
+\fIsetrlimit\fR()
+identifies a specific resource to be operated upon as well as a
+resource limit. A resource limit is represented by an
+.BR rlimit
+structure. The
+.IR rlim_cur
+member specifies the current or soft limit and the
+.IR rlim_max
+member specifies the maximum or hard limit. Soft limits may be changed
+by a process to any value that is less than or equal to the hard
+limit. A process may (irreversibly) lower its hard limit to any value
+that is greater than or equal to the soft limit. Only a process with
+appropriate privileges can raise a hard limit. Both hard and soft
+limits can be changed in a single call to
+\fIsetrlimit\fR()
+subject to the constraints described above.
+.P
+The value RLIM_INFINITY, defined in
+.IR <sys/resource.h> ,
+shall be considered to be larger than any other limit value. If a
+call to
+\fIgetrlimit\fR()
+returns RLIM_INFINITY for a resource, it means the implementation shall
+not enforce limits on that resource. Specifying RLIM_INFINITY as any
+resource limit value on a successful call to
+\fIsetrlimit\fR()
+shall inhibit enforcement of that resource limit.
+.P
+The following resources are defined:
+.IP RLIMIT_CORE 14
+This is the maximum size of a
+.BR core
+file, in bytes, that may be created by a process. A limit of 0 shall
+prevent the creation of a
+.BR core
+file. If this limit is exceeded, the writing of a
+.BR core
+file shall terminate at this size.
+.IP RLIMIT_CPU 14
+This is the maximum amount of CPU time, in seconds, used by a process.
+If this limit is exceeded, SIGXCPU shall be generated for the process. If
+the process is catching or ignoring SIGXCPU, or all threads belonging
+to that process are blocking SIGXCPU, the behavior is unspecified.
+.IP RLIMIT_DATA 14
+This is the maximum size of a data segment of the process, in bytes.
+If this limit is exceeded, the
+\fImalloc\fR()
+function shall fail with
+.IR errno
+set to
+.BR [ENOMEM] .
+.IP RLIMIT_FSIZE 14
+This is the maximum size of a file, in bytes, that may be created by a
+process. If a write or truncate operation would cause this limit to be
+exceeded, SIGXFSZ shall be generated for the thread. If the thread is
+blocking, or
+the process is catching or ignoring SIGXFSZ, continued attempts to
+increase the size of a file from end-of-file to beyond the limit
+shall fail with
+.IR errno
+set to
+.BR [EFBIG] .
+.IP RLIMIT_NOFILE 14
+This is a number one greater than the maximum value that the system may
+assign to a newly-created descriptor. If this limit is exceeded,
+functions that allocate a file descriptor shall fail with
+.IR errno
+set to
+.BR [EMFILE] .
+This limit constrains the number of file descriptors that a process may
+allocate.
+.IP RLIMIT_STACK 14
+This is the maximum size of the initial thread's stack, in bytes. The
+implementation does not automatically grow the stack beyond this
+limit. If this limit is exceeded, SIGSEGV shall be generated for the
+thread. If the thread is blocking SIGSEGV, or the process is ignoring
+or catching SIGSEGV and has not made arrangements to use an alternate
+stack, the disposition of SIGSEGV shall be set to SIG_DFL before it is
+generated.
+.IP RLIMIT_AS 14
+This is the maximum size of total available memory of the process, in
+bytes. If this limit is exceeded, the
+\fImalloc\fR()
+and
+\fImmap\fR()
+functions shall fail with
+.IR errno
+set to
+.BR [ENOMEM] .
+In addition, the automatic stack growth fails with the effects outlined
+above.
+.P
+When using the
+\fIgetrlimit\fR()
+function, if a resource limit can be represented correctly in an object
+of type
+.BR rlim_t ,
+then its representation is returned; otherwise, if the value of the
+resource limit is equal to that of the corresponding saved hard limit,
+the value returned shall be RLIM_SAVED_MAX; otherwise, the value
+returned shall be RLIM_SAVED_CUR.
+.P
+When using the
+\fIsetrlimit\fR()
+function, if the requested new limit is RLIM_INFINITY, the new limit
+shall be ``no limit''; otherwise, if the
+requested new limit is RLIM_SAVED_MAX, the new limit shall be the
+corresponding saved hard limit; otherwise, if the requested new limit
+is RLIM_SAVED_CUR, the new limit shall be the corresponding saved soft
+limit; otherwise, the new limit shall be the requested value. In
+addition, if the corresponding saved limit can be represented correctly
+in an object of type
+.BR rlim_t
+then it shall be overwritten with the new limit.
+.P
+The result of setting a limit to RLIM_SAVED_MAX or RLIM_SAVED_CUR is
+unspecified unless a previous call to
+\fIgetrlimit\fR()
+returned that value as the soft or hard limit for the corresponding
+resource limit.
+.P
+The determination of whether a limit can be correctly represented in an
+object of type
+.BR rlim_t
+is implementation-defined. For example, some implementations permit a
+limit whose value is greater than RLIM_INFINITY and others do not.
+.P
+The
+.IR exec
+family of functions shall cause resource limits to be saved.
+.SH "RETURN VALUE"
+Upon successful completion,
+\fIgetrlimit\fR()
+and
+\fIsetrlimit\fR()
+shall return 0. Otherwise, these functions shall return \-1 and set
+.IR errno
+to indicate the error.
+.SH ERRORS
+The
+\fIgetrlimit\fR()
+and
+\fIsetrlimit\fR()
+functions shall fail if:
+.TP
+.BR EINVAL
+An invalid
+.IR resource
+was specified; or in a
+\fIsetrlimit\fR()
+call, the new
+.IR rlim_cur
+exceeds the new
+.IR rlim_max .
+.TP
+.BR EPERM
+The limit specified to
+\fIsetrlimit\fR()
+would have raised the maximum limit value, and the calling process does
+not have appropriate privileges.
+.P
+The
+\fIsetrlimit\fR()
+function may fail if:
+.TP
+.BR EINVAL
+The limit specified cannot be lowered because current usage is already
+higher than the limit.
+.LP
+.IR "The following sections are informative."
+.SH EXAMPLES
+None.
+.SH "APPLICATION USAGE"
+If a process attempts to set the hard limit or soft limit for
+RLIMIT_NOFILE to less than the value of
+{_POSIX_OPEN_MAX}
+from
+.IR <limits.h> ,
+unexpected behavior may occur.
+.P
+If a process attempts to set the hard limit or soft limit for
+RLIMIT_NOFILE to less than the highest currently open file descriptor
++1, unexpected behavior may occur.
+.SH RATIONALE
+It should be noted that RLIMIT_STACK applies ``at least'' to the stack
+of the initial thread in the process, and not to the sum of all the
+stacks in the process, as that would be very limiting unless the value
+is so big as to provide no value at all with a single thread.
+.SH "FUTURE DIRECTIONS"
+None.
+.SH "SEE ALSO"
+.IR "\fIexec\fR\^",
+.IR "\fIfork\fR\^(\|)",
+.IR "\fImalloc\fR\^(\|)",
+.IR "\fIopen\fR\^(\|)",
+.IR "\fIsigaltstack\fR\^(\|)",
+.IR "\fIsysconf\fR\^(\|)",
+.IR "\fIulimit\fR\^(\|)"
+.P
+The Base Definitions volume of POSIX.1\(hy2017,
+.IR "\fB<stropts.h>\fP",
+.IR "\fB<sys_resource.h>\fP"
+.\"
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1-2017, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 7, 2018 Edition,
+Copyright (C) 2018 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group.
+In the event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .
+.PP
+Any typographical or formatting errors that appear
+in this page are most likely
+to have been introduced during the conversion of the source files to
+man page format. To report such errors, see
+https://www.kernel.org/doc/man-pages/reporting_bugs.html .