0

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

成功时返回 0,否则返回 -1。

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

此致,

4

1 回答 1

0

如手册所述:

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

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

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

当它brk已经由sbrk(0). 话虽如此,由于/mmap的某些操作系统的限制,通常使用 use 来满足您的内存分配需求可能会更加谨慎。brksbrk

于 2013-01-13T19:46:00.543 回答