kgetrlimit64 内核服务

用途

控制最大系统资源消耗。

标准 C 库 (libc.a)

语法

#include <sys/time.h>
#include <sys/resource.h>
void kgetrlimit64 (Resource1, RLP)
int Resource1;
struct rlimit64 *RLP;

参数

描述
Resource1 Resource1 参数可以是以下其中一个值:
RLIMIT_AS
进程的总可用内存的最大大小 (以字节为单位)。 仅当在执行进程之前在用户环境中设置了 XPG_SUS_ENV=ON 环境变量时,内核才会强制实施此限制。 如果未在用户的环境中设置 XPG_SUS_ENV 环境变量,那么不会强制实施限制。
RLIMIT_CORE
可以创建的核心文件的最大大小 (以字节为单位)。 此限制由内核强制实施。 如果 RLIMIT_FSIZE 限制的值小于 RLIMIT_CORE 限制的值,那么系统会将 RLIMIT_FSIZE 限制值用作软限制。
RLIMIT_CPU
每个进程要使用的最大中央处理单元 (CPU) 时间量 (以秒为单位)。 如果某个进程超过了其软 CPU 限制,那么内核将向该进程发送 SIGXCPU 信号。 达到硬限制后,将使用 SIGXCPU终止该进程,即使它处理,阻止或忽略该信号也是如此。
RLIMIT_DATA
进程的数据区域的最大大小 (以字节为单位)。 此限制定义程序可以在多大程度上使用 斯布尔克 子例程扩展其中断值。 此限制由内核强制实施。
RLIMIT_FSIZE
可以创建的任何单个文件的最大大小 (以字节为单位)。 当进程尝试写入,截断或清除超过其软 RLIMIT_FSIZE 限制时,该操作将失败,并且 错误号 变量设置为 EFBIG。 如果在发出过程之前在用户的环境中设置了环境变量 XPG_SUS_ENV=ON ,那么还会生成 SIGXFSZ 信号。
RLIMIT_NOFILE
这是大于系统可以分配给新创建的描述符的最大值的 1 号。
RLIMIT_STACK
进程的堆栈区域的最大大小 (以字节为单位)。 此限制定义程序堆栈区域可扩展的程度。 系统自动执行堆栈扩展。 此限制由内核强制实施。 当达到堆栈限制时,进程将接收到 SIGSEGV 信号。 如果此信号不是由使用信号堆栈的处理程序捕获的,那么此信号将结束进程。
RLIMIT_RSS
进程的驻留集大小可以增长到的最大大小 (以字节为单位)。 此限制未由内核强制实施。 进程可能超出其软限制大小而未结束。
RLP 指向 rlimit64 结构, kgetrlimit64 内核服务将在该结构中返回请求的限制。

描述

kgetrlimit64 内核服务将返回当前进程及其子进程所使用的系统资源的限制值。

注:kgetrlimit64 内核服务返回的初始值是进程启动时生效的 ulimit 值。 对于 maxdata 程序,数据的初始软限制设置为数据 ulimit 值中的较低值或对应于为数据段保留的数据段数的值。

rlimit64 结构指定资源的硬限制和软限制,如 sys/resource.h 文件中所定义。 RLIM64_INFINITY 值定义限制的无限值。

执行环境

可以从 流程中断 环境中调用 kgetrlimit64 内核服务。

返回值

kgetrlimit64 内核服务没有任何返回值。