对memtester源码分析

本文主要分析了memtester 4.3.0的源码,重点在于memtester.c和test.c。首先介绍了check_posix_system()和memtester_pagesize()函数,然后详细讲解了如何处理用户输入的参数,包括-p和-d选项。关键代码是使用mmap()将内存映射到进程空间,并通过mlock()加锁以防止操作系统干预。最后,文章阐述了核心的测试循环和不同测试函数的调用方式。
摘要由CSDN通过智能技术生成

测试环境:Linux

    代码工具:source insight

    Memtester版本:4.3.0

    下载地址: http://pyropus.ca/software/memtester/

Memtester是一个很好的内存测试工具。其代码也不是很复杂。最主要的就是memtester.c和test.c,这两文件。其他脚本是一些配置编译选项,对分析这个源码没有什么影响。

我们先从memtester.c开始分析。

在memtester.c的134行中有

check_posix_system();

pagesize = memtester_pagesize();

pagesizemask = (ptrdiff_t) ~(pagesize - 1);

printf("pagesizemask is 0x%tx\n", pagesizemask);

 

check_posix_system是确认所测试的系统支不支持标准的POSIX接口。下面很多函数需要用到标准的接口,如果不支持,则只有error。

memtester_pagesize是用接口测试系统是32位还是64位,这涉及到其后的很多方方面面。

Pagesizemask是得出最大的地址范围。

 

下面很重要的就是:

while ((opt = getopt(argc, argv, "p:d:")) != -1) {

这句话是用来处理用户输入的数据的。关于getopt函数的解析,后面会有地址链接。

case

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值