占用linux固定内存大小的小程序

59 篇文章 0 订阅
58 篇文章 0 订阅

做实验时要使某个程序占用固定大小的内存,这里写了一个小程序,在linux环境下:


1、首先使用free -mo -s 2 命令查看系统内存使用量:


2、打开另一个终端编写occupy.c源文件如下:

#include<stdio.h>
#include<sys/mman.h>
#include<stdlib.h>
#include<unistd.h>

//要占用100M内存,以字节为单位
const int alloc_size = 100*1024*1024;

int main(){
        char *mem = malloc(alloc_size);
	//使用mlock锁定内存
        if(mlock(mem,alloc_size) == -1){
                perror("mlock");
                return -1;
        }
	//typedef unsigned int size_t
        size_t i;
	//获得每一个内存页的大小,一般为4K
        size_t page_size = getpagesize();
        for(i=0;i<alloc_size;i+=page_size){
			mem[i] = 0;
        }
		
        printf("i = %zd\n",i);
        while(1){
			sleep(5);
        }
      
        return 1;
}

执行命令:

gcc occypy.c -o occupy

sudo ./occupy

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值