C语言之--getrlimit()与setrlimit()
来源:互联网 发布:淘宝刷单is房间推荐 编辑:程序博客网 时间:2024/06/05 17:08
功能描述:
获取或设定资源使用限制。每种资源都有相关的软硬限制,软限制是内核强加给相应资源的限制值,硬限制是软限制的最大值。非授权调用进程只可以将其软限制指定为0~硬限制范围中的某个值,同时能不可逆转地降低其硬限制。授权进程可以任意改变其软硬限制。RLIM_INFINITY的值表示不对资源限制。
用法:
#include <sys/resource.h>int getrlimit(int resource, struct rlimit *rlim);int setrlimit(int resource, const struct rlimit *rlim);
参数:
resource:可能的选择有
RLIMIT_AS //进程的最大虚内存空间,字节为单位。
RLIMIT_CORE //内核转存文件的最大长度。
RLIMIT_CPU //最大允许的CPU使用时间,秒为单位。当进程达到软限制,内核将给其发送SIGXCPU信号,这一信号的默认行为是终止进程的执行。然而,可以捕捉信号,处理句柄可将控制返回给主程序。如果进程继续耗费CPU时间,核心会以每秒一次的频率给其发送SIGXCPU信号,直到达到硬限制,那时将给进程发送 SIGKILL信号终止其执行。
RLIMIT_DATA //进程数据段的最大值。
RLIMIT_FSIZE //进程可建立的文件的最大长度。如果进程试图超出这一限制时,核心会给其发送SIGXFSZ信号,默认情况下将终止进程的执行。
RLIMIT_LOCKS //进程可建立的锁和租赁的最大值。
RLIMIT_MEMLOCK //进程可锁定在内存中的最大数据量,字节为单位。
RLIMIT_MSGQUEUE //进程可为POSIX消息队列分配的最大字节数。
RLIMIT_NICE //进程可通过setpriority() 或 nice()调用设置的最大完美值。
RLIMIT_NOFILE //指定比进程可打开的最大文件描述词大一的值,超出此值,将会产生EMFILE错误。
RLIMIT_NPROC //用户可拥有的最大进程数。
RLIMIT_RTPRIO //进程可通过sched_setscheduler 和 sched_setparam设置的最大实时优先级。
RLIMIT_SIGPENDING //用户可拥有的最大挂起信号数。
RLIMIT_STACK //最大的进程堆栈,以字节为单位。
rlim:描述资源软硬限制的结构体,原型如下
struct rlimit {
rlim_t rlim_cur; //soft limit
rlim_t rlim_max; //hard limit
};
返回说明:
成功执行时,返回0。失败返回-1,errno被设为以下的某个值
EFAULT:rlim指针指向的空间不可访问
EINVAL:参数无效
EPERM:增加资源限制值时,权能不允许
示例:
修改RLIMIT_CORE的软件资源:
struct rlimit rlim , new_rlim; getrlimit(RLIMIT_CORE, &rlim); new_rlim = rlim; new_rlim.rlim_cur = 123*1024*1024; setrlimit(RLIMIT_CORE, &new_rlim);
- C语言之--getrlimit()与setrlimit()
- C语言系统资源控制(getrlimit && setrlimit)
- [转]C语言系统资源控制(getrlimit && setrlimit)
- C语言系统资源控制(getrlimit && setrlimit)
- C语言系统资源控制(getrlimit && setrlimit)
- C语言系统资源控制(getrlimit && setrlimit)
- C语言系统资源控制(getrlimit && setrlimit)
- getrlimit与setrlimit函数
- getrlimit 与setrlimit
- getrlimit && setrlimit
- getrlimit/setrlimit
- getrlimit setrlimit
- getrlimit、setrlimit
- linux系统调用---getrlimit()与setrlimit()
- Linux下C编程 -- 系统资源控制(getrlimit 和 setrlimit)
- getrlimit , setrlimit 函数
- getrlimit和setrlimit
- getrlimit,setrlimit函数
- 进程同步-对于synchronized的理解
- POJ 2377 Bad Cowtractors [图论.最小生成树] 《挑战程序设计竞赛》2.5
- 第七届蓝桥杯国赛 机器人塔
- Nagios 监控配置及实战
- AFN
- C语言之--getrlimit()与setrlimit()
- ASI
- ASI和AFN的区别
- [Unity踩坑系列]在Unity4.x里禁用粒子culling(no renderering when off screen)
- JSON解析
- 深入分析ConcurrentHashMap
- XML解析
- HTTP通信过程
- 使用git微命令深入理解git工作机制