8

虽然我知道 Unix 系统调用brk和函数的作用sbrk,但我不知道它们代表什么。任何人都可以启发我吗?

4

2 回答 2

13

它来自“中断值”。

我引用:“通过重置进程的中断值并分配适当的空间量来进行更改。中断值是超出数据段末尾的第一个位置的地址。”

(来源:http ://www.s-gms.ms.edus.si/cgi-bin/man-cgi?brk+2 )

于 2011-07-28T22:48:18.600 回答
2

只需阅读手册页

brk() 和 sbrk() 改变了程序中断的位置,它定义了进程数据段的结束(即程序中断是未初始化数据段结束后的第一个位置)。增加program break有给进程分配内存的效果;减少中断释放内存。

brk() 将数据段的末尾设置为 addr 指定的值,当该值合理时,系统有足够的内存,并且进程不超过其最大数据大小(参见 setrlimit(2))。

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

于 2020-05-02T18:10:55.910 回答