Advertisement

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)

还没有任何评论哟~