Linux内核对进程有资源限制,明确规定了进程可以消耗的内核资源的上限。
这些限制是强制性的,内核不会允许进程的资源消耗超过这一硬性限制。
Linux提供了两个操作资源限制的系统调用。这两个都是标准的POSIX调用,而且
Linux还做了一些补充,可以分别调用getlimit()和setlimit()来获取和设置限制。
#include
#include
int getrlimit(int resource,struct rlimit *rlim);
int setrlimit(int resource,const struct rlimit *rlim);
一般用类似RLIMIT_CPU的整数数量表示资源,rlimit结构表示实际限制,该结构定义了
两个上限:软限制和硬限制。获取资源限制的方法很简单:
编译:
运行:
可以看到,软限制设置为0,硬限制设置为-1.