首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Unix中使用sbrk系统调用

在Unix中使用sbrk系统调用
EN

Stack Overflow用户
提问于 2015-06-30 04:28:00
回答 2查看 816关注 0票数 0

sbrk系统调用在Unix中的用途是什么?在C中如何使用?大多数人说,malloc使用sbrk系统调用来分配内存。那么,sbrk系统如何调用分配内存呢?sbrk的参数和返回类型是什么?

EN

回答 2

Stack Overflow用户

发布于 2015-06-30 05:05:31

sbrk()以正整数作为参数。它将当前进程的堆的大小增加那么多字节,然后将一个void *返回到堆的新端。

但是,您正在阅读的信息已经过时了,。若要引用此系统调用的Mac手册页面,请执行以下操作:

brksbrk函数是虚拟内存管理出现前几天遗留下来的历史奇观。

现代系统不使用sbrk()进行内存管理,因为它非常有限。特别是,它不能管理内存中不连续的堆!相反,他们使用mmap()系统调用来根据需要映射新的内存范围。

票数 2
EN

Stack Overflow用户

发布于 2015-06-30 04:35:29

功能定义:void *sbrk(intptr_t increment);

sbrk()将程序的数据空间增加increment字节。可以使用增量为0的调用sbrk()来查找程序中断的当前位置。

来自http://linux.die.net/man/2/sbrk

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31129563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档