语法
#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 内核服务没有任何返回值。