前言

每个进程都有其使用资源的一个限制,这些资源通常是在进程初始化时由进程 0 所建立的,然后由每个后续进程继承。

本文将介绍如何获取并修改进程的资源限制。

获取资源限制函数:getrlimit()

原型:int getrlimit (int resource, struct rlimit *rlptr)

包含于:sys/resource.h

作用:获取 resource 资源的限制信息,将其保存在 rlptr 所指向的结构体中。( 后面将给出表示 resource 的宏以及此结构体的定义 )

修改资源限制函数:setrlimit()

原型:int setrlimit (int resource, const struct rlimit *rlptr)

包含于:sys/resource.h

作用:将资源 resource 加上 rlptr 所指结构体所描述的限制。

resource 取值

  

  

资源限制结构体 rlimit

1 struct rlimit {
2     rlim_t rlim_cur;    // 软限制
3     rlim_t rlim_max;    // 硬限制
4 };

修改资源限制必须遵循的三条规则

1. 任何一个进程都可以将一个软限制更改为小于或等于其硬限制值。

2. 任何一个进程都可降低其硬限制值,但它必须大于或等于其软限制值。这种降低对于普通用户来说是不可逆的。

3. 只有超级用户可以提高硬限制值。

代码实现

下程序获取进程的最大栈容量并打印出来:

 1 #include <stdio.h>
 2 #include <sys/resource.h>
 3
 4 int main (void) {
 5
 6     // 定义保存进程资源限制的结构体
 7     struct rlimit l;
 8
 9     // 获取进程资源限制信息
10     if (getrlimit (RLIMIT_FSIZE, &l)) {
11         printf("获取资源限制信息出错\n");
12     return 1;
13     }
14
15     // 打印资源限制信息
16     printf("软限: %ld\n硬限: %ld\n", l.rlim_cur, l.rlim_max);
17
18     return 0;
19 }

运行测试

至于为什么是 -1,这里不去纠结这个问题了。

小结

要注意更改资源限制的那三条规则。

第十七篇:获取 / 修改进程资源限制相关推荐

  1. 服务器手工修改进程资源,图解Total Commander 7.0之22项更新与改进(推荐)

    作者:xbeta 版本:070611/070611 出自:善用佳软http://xbeta.info 本文超过20张图片,如果网速慢而无法阅读,可在此下载全文. 更新1:更新用户界面:平坦图标(支持X ...

  2. 第十七篇:修改默认窗口动画缩放、过渡动画缩放的值

    (1)在开发者选项中可以去选择"窗口动画缩放"."过渡动画缩放"比例,有客户需求关闭这个动画过程. (2)可以直接在SettingsProvider下去修改默认 ...

  3. linux cpu 使用10个进程,linux下获取占用CPU资源最多的10个进程

    linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...

  4. linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下

    linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用 ...

  5. 子进程中获取父进程id_进程全家桶,看这一篇就够了 | 原力计划

    作者 | 看,未来 责编 | 王晓曼 出品 | CSDN博客 初见进程,先查一下户口 1.进程环境 进程控制块PCB:就是进程在操作系统中的"户口",具体实现是 task_stru ...

  6. 线程间到底共享了哪些进程资源?

    进程和线程这两个话题是程序员绕不开的,操作系统提供的这两个抽象概念实在是太重要了. 关于进程和线程有一个极其经典的问题,那就是进程和线程的区别是什么?相信很多同学对答案似懂非懂. 记住了不一定真懂 关 ...

  7. 使用 C# 开发 Kubernetes 组件,获取集群资源信息

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  8. 线程间到底共享了哪些进程资源

    进程和线程这两个话题是程序员绕不开的,操作系统提供的这两个抽象概念实在是太重要了. 关于进程和线程有一个极其经典的问题,那就是进程和线程的区别是什么?相信很多同学对答案似懂非懂. 记住了不一定真懂 有 ...

  9. 使用 shell 脚本对 Linux 系统和进程资源进行监控

    Shell 简介 Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是 ...

最新文章

  1. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED解决方法
  2. 数据结构和算法分析:第一章 引论
  3. [YTU]_2432 (C++习题 对象数组输入与输出)
  4. 经典正则表达式[收藏]
  5. graph 关系图 设置
  6. Fastjson批量检查及一键利用工具
  7. 【评论】GNU/Linux下有多少是GNU的?
  8. 【CodeForces - 546C 】Soldier and Cards (模拟)
  9. android item三种,Android RecyclerView中的ItemDecoration的几种绘制方法
  10. 前端笔记-freemarker模板获取后端数据及提交数据
  11. 帝国cms怎么搭建python环境_用python 发 帝国cms 文章
  12. VBscript读取excel表,中数据导入到SQLserver数据库里面
  13. windows 消息
  14. linux 登录直接进入系统,Linux登录和推出系统入门教程
  15. 传奇登陆游戏黑屏错位以及登陆器配置和常见问题
  16. CNN | 01实现颜色分类
  17. UOJ#449 喂鸽子
  18. Java导出Word(导出图片,类,List)
  19. Power BI介绍
  20. ks值和auc值的关系

热门文章

  1. java excel api xlsx_Java 解析Excel(xls、xlsx两种格式)
  2. 学习笔记Hadoop(十)—— Hadoop基础操作(2)—— HDFS常用Shell操作
  3. python 相交链表
  4. android studio引用module出的错:Unable to resolve dependency for‘:app@debug/........
  5. datepicker 颜色 android,Android修改DatePicker字體顏色及分割線顏色
  6. try catch异常后会执行后面的代码吗_JVM异常处理最强讲解
  7. Python 爬虫原理实现自动google翻译
  8. 计算机文献检索综合性实验报告,文献检索综合性实验报告模板.doc
  9. unity开宝箱动画_unity简单动画实现
  10. opengl中gpu与cpu交互_OpenGL 环境配置与教程推荐