1个答案 按时间排序 按投票排序
-
采纳的答案
char *sbrk(int incr)
本函数用来增加分配给调用程序的数据段的空间数量,增加incr个字节的空间
文章出处:http://www.diybl.com/course/3_program/c++/cppsl/2008513/115791_14.html
引用如前所述,被映射的内存的边界(最后一个有效地址)常被称为系统中断点或者 当前中断点。在很多 UNIX? 系统中,为了指出当前系统中断点,必须使用 sbrk(0) 函数。 sbrk 根据参数中给出的字节数移动当前系统中断点,然后返回新的系统中断点。使用参数 0 只是返回当前中断点。这里是我们的 malloc 初始化代码,它将找到当前中断点并初始化我们的变量:
参考: http://ribut9225.blog.51cto.com/24441/84393
引用
顶层堆
mallocHeap 取代malloc的层
mmapHeap 取代虚拟内存管理的层
sbrkHeap 取代sbrk(连续内存)构建块堆的层
AdaptHeap 使数据结构可作为堆使用
BoundedFreelistHeap 有长度限制的释放列表
ChunkHeap 以给定大小的块来管理内存
CoalesceHeap 执行拼接与拆分
FreelistHeap 一个释放列表(用于捕捉释放的对象)
组合堆
HybridHeap 对小对象使用一个堆,而对大对象使用另一个堆
SegHeap 用于分配方法的一般分割
StrictSegHeap 用于分配方法的严格分割
工具层
ANSIWrapper 提供与ANSI-malloc的兼容性
DebugHeap 检查多种分配错误
LockedHeap 为保证线程安全的闭锁堆
PerClassHeap 使用一个堆作为每个类的分配算符
PHOThreadHeap 带有自有分配算符私有堆
ProfileHeap 收集并输出碎片统计
ThreadHeap 一个纯私有堆分配算符
ExceptionHeap 当父类堆超出内存时,抛出一个异常
TraceHeap 输出有关内存分配的跟踪信息
UniqueHeap 引用一个堆对象的堆类型
对象表示
CoalesceableHeap 为拼接提供支持
SizeHeap 在头部中记录对象大小
特殊用途的堆
ObstackHeap 专门优化用于类似堆栈行为或快速大小调整的堆
ZoneHeap 一个区域分配算符
XallocHeap 优化用于类似堆栈行为的堆
通用堆
KingsleyHeap 快速但多碎片的堆
LeaHeap 速度不快,但碎片很少的堆
参考: http://itus.cn/programe/design/2/Vc-40796_3.shtml2009年4月05日 14:57
相关推荐
在Linux环境下进行C语言开发,开发者常常需要利用各种C函数来实现特定的功能。这份"linux的c函数经典收藏"很可能是一份包含大量实用C函数示例和解释的资源集合,对于提升C语言编程技能和理解Linux系统编程至关重要。...
通过对VC6.0SRC的研读,我们可以学习到C标准库中的各种函数如何在Windows环境下被编译和链接,以及它们的内部工作机制,如内存管理、错误处理和线程支持等。 另一方面,glibc是GNU C Library的缩写,是Linux和其他...
这些函数允许程序在Linux环境下创建、读取、修改和删除文件及目录。另外,`chmod`和`chown`用于改变文件权限和所有者,`stat`则用于获取文件属性。 6. **内存处理**: C/C++提供了内存管理的直接控制,如`malloc`,...
"Linux常用C函数速查(中文版)"是一份非常实用的手册,它包含了大量在Linux环境下进行C语言编程时会用到的关键函数,帮助程序员快速查找并理解这些函数的用途和用法。 1. **标准库函数**:C语言的标准库提供了许多...
sbrk() 函数不是系统调用,而是 C 库函数,它调用 brk() 函数来实现虚拟内存到内存的映射。 malloc() 函数是 C 语言中最基本的动态内存分配函数。malloc() 函数的原型是 `void *malloc(size_t size);`,它将分配一...
8. **sbrk** 函数:类似于`brk`,但`sbrk`可以直接增加或减少数据段的大小,传入参数`incr`表示要改变的字节数。成功时返回新的数据段边界,失败则返回-1。 9. **assert** 函数:这是一个调试工具,用于测试条件...
8. **内存管理**:`mmap`函数用于将文件或设备映射到进程的地址空间,`brk`和`sbrk`调整堆的大小,`mprotect`改变内存区域的保护设置。 9. **错误处理**:`errno`全局变量存储最近系统调用的错误代码,`perror`函数...
Linux C函数库参考手册详细介绍了在Linux环境下使用C语言进行编程时,可以调用的标准C函数库。该手册共分为25章,涵盖了从字符测试、数据转换到内存配置等多个方面,并附有编译、宏与函数、不定参数、信号列表、错误...
本文将深入探讨"Linux C函数详解"这一主题,旨在帮助读者更好地理解和掌握在Linux环境下使用C语言进行编程的相关知识。 1. **Linux基础知识**: - **Linux内核**:Linux系统的核心,负责管理硬件资源,提供系统...
本资源"Linux常用C函数(中文版)"提供了一套全面的C语言函数参考,特别针对在Linux环境下编程时常用的函数进行了详尽的解释和示例。下面将详细介绍其中的一些关键知识点。 1. **标准库函数**: - `stdio.h`:包含了...
sbrk 函数的主要特点是可以将堆的大小增加或减少指定的字节数。 六、内存申请函数的工作机制 malloc 函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用 malloc 函数时,它沿连接...
C语言中涉及内存管理的部分函数主要位于`alloc.h`或`stdlib.h`中,这些函数提供了动态内存分配、释放以及调整等功能。 ##### brk **功能**:更改数据段空间的分配。 **原型**: ```c int brk(void* endds); ``` ...
例如,`sbrkr.c` 文件通常包含内存分配相关的系统调用,如`sbrk()` 函数,该函数在不同的编译器下可能有不同的实现方式。`syscalls.c` 可能会包含这些特定函数的适配代码,使得程序在GCC环境下依然能够正确运行。 ...
本资源"Linux C函数大全"显然是一个汇总了Linux环境下的C语言函数的资料库,对于开发者来说是一份宝贵的参考。 在Linux系统中,C语言被用来编写内核和其他系统组件,因为它的高效性和对硬件的直接访问能力。这份...
"Linux函数详解"的主题聚焦于深入理解Linux环境下的C语言函数,这对于系统级编程、驱动开发以及嵌入式系统的开发者来说尤为关键。Linux内核是用C语言和少量汇编编写,因此熟悉这些函数对于理解和定制Linux系统至关...
`malloc`需要与操作系统交互来获取内存,这通常通过系统调用如`brk`或`sbrk`完成,它们可以改变程序数据段的结束位置,从而扩展或收缩堆。 2. **内存碎片**:连续分配和释放内存可能会导致内存碎片,分为内部碎片...
在这种情况下,malloc会尝试合并相邻的小块以形成更大的连续区域,如果仍然无法满足需求,malloc将调用sbrk函数向操作系统请求更多内存。 在Linux环境中,malloc并非直接与内核交互。而是通过glibc(GNU C Library...
以上总结的函数均是Linux C函数库中的标准部分,程序员在编写Linux平台下的C程序时,可以充分利用这些函数来提高开发效率和程序的稳定性。对于初学者和专业开发者而言,理解和掌握这些函数的用法是开发优质软件的...
虚拟内存分配可以通过 sbrk 和 brk 函数实现,sbrk 用于分配内存空间,brk 用于释放内存空间。 四、 errno.h 和 dlfcn.h errno.h 是一个定义了许多宏的头文件,每个宏代表一个错误。dlfcn.h 是一个提供了四个函数...