Skip to content

JasonkayZK/cpp-learn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简单的内存分配器实现

It implements malloc(), calloc(), realloc() and free().

文章:


How to use

Compile:

gcc -o memalloc.so -fPIC -shared memalloc.c

-fPIC-shared 选项确保编译后的输出具有位置相关代码,并告诉链接器生成适合动态链接的共享对象;

在Linux上,如果将环境变量 LD_PRELOAD 设置为共享对象的路径,则该文件将在任何其他库之前加载;

我们可以使用此技巧来加载我们的动态链接文件,以便在 Shell 中运行的命令将使用我们的内存分配函数:

export LD_PRELOAD=$PWD/memalloc.so

此时再执行命令,将会使用我们的内存分配函数:

ls
memalloc.c		memalloc.so		README.md

一旦完成了实验,可以执行 unset LD_PRELOAD 来停止使用我们的分配器;


Reference

About

A repo to learn c++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors