首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用brk获取brk_start

使用brk获取brk_start
EN

Stack Overflow用户
提问于 2013-01-14 03:39:59
回答 1查看 329关注 0票数 0

int brk(void *end_data_segment)的手册;说明:"brk()将数据段的末尾设置为end_data_segment指定的值“

如果成功,则返回0,否则返回-1。

但是如何获得中断的初始值(如sbrk(0))?

诚挚的问候,

EN

回答 1

Stack Overflow用户

发布于 2013-01-14 03:46:01

正如手册所述:

如果成功,brk()返回零。出错时,返回-1,并将errno设置为ENOMEM

因此,无法通过调用brk来获取初始值。相反,正如您所注意到的,您应该使用sbrk(0)

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

sbrk(0)已经提供此功能时,没有理由期望brk也提供此功能。话虽如此,由于brk/sbrk的某些操作系统的限制,通常使用use mmap来满足您的内存分配需求可能更为谨慎。

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

https://stackoverflow.com/questions/14307381

复制
相关文章

相似问题

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