sbrk系统调用在Unix中的用途是什么?在C中如何使用?大多数人说,malloc使用sbrk系统调用来分配内存。那么,sbrk系统如何调用分配内存呢?sbrk的参数和返回类型是什么?
发布于 2015-06-30 05:05:31
sbrk()以正整数作为参数。它将当前进程的堆的大小增加那么多字节,然后将一个void *返回到堆的新端。
但是,您正在阅读的信息已经过时了,。若要引用此系统调用的Mac手册页面,请执行以下操作:
brk和sbrk函数是虚拟内存管理出现前几天遗留下来的历史奇观。
现代系统不使用sbrk()进行内存管理,因为它非常有限。特别是,它不能管理内存中不连续的堆!相反,他们使用mmap()系统调用来根据需要映射新的内存范围。
发布于 2015-06-30 04:35:29
功能定义:void *sbrk(intptr_t increment);
sbrk()将程序的数据空间增加
increment字节。可以使用增量为0的调用sbrk()来查找程序中断的当前位置。
来自http://linux.die.net/man/2/sbrk
https://stackoverflow.com/questions/31129563
复制相似问题