brk调整段表基址以释放内存空间,mmap将数据映射到内存地址
发布时间
阅读量:
阅读量
malloc函数族:
#include <stdlib.h>
void *malloc(size_t size);
void free(void *ptr);
void *calloc(size_t nmemb, size_t size);
void *realloc(void *ptr, size_t size);
void *reallocarray(void *ptr, size_t nmemb, size_t size);
malloc:
负责分配指定size大小的内存块,并将该内存块地址通过指针变量ptr予以引用。该内存块未预先进行初始化操作。当size参数值等于0时,则返回空值(即null),或者一个能够在后续过程中被正确回收(即能调用free函数)的指针变量。
Linux系统采用积极管理内存资源的方式,在释放了内存并返回了一个非空指针的情况下,并不能保证可用内存空间足够满足当前申请需求;此时系统会通过OOM(溢出对象管理)机制自动识别不足可用空间的情况,并终止若干进程以释放额外的空间资源。
当申请的内存块大小低于MMAP_THRESHOLD阈值时,则会采用brk()函数来完成资源分配任务;而当内存块尺寸超过该阈值时,则会使用mmap函
全部评论 (0)
还没有任何评论哟~
