int brk(void *end_data_segment) 手册;说:“brk() 将数据段的结尾设置为 end_data_segment 指定的值”
成功时返回 0,否则返回 -1。
但是如何获得我的中断的初始值(如 sbrk(0))?
此致,
如手册所述:
成功时,brk() 返回零。出错时,返回 -1,并将 errno 设置为 ENOMEM
所以没有办法通过调用来获取初始值brk
。相反,正如您所注意到的,您应该使用sbrk(0)
:
sbrk() 以递增字节递增程序的数据空间。以 0 为增量调用 sbrk() 可用于查找程序中断的当前位置。
当它brk
已经由sbrk(0)
. 话虽如此,由于/mmap
的某些操作系统的限制,通常使用 use 来满足您的内存分配需求可能会更加谨慎。brk
sbrk