brk和sbrk代表什么?

时间:2011-07-28 22:43:48

标签: c unix sbrk brk

虽然我知道Unix系统调用brk和函数sbrk做了什么,但我不知道他们代表什么。谁能开导我?

2 个答案:

答案 0 :(得分:11)

它来自“破碎价值”。

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

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

答案 1 :(得分:1)

只需阅读man page

brk()和sbrk()更改程序中断的位置,该位置定义了流程数据段的结尾(即,程序中断是未初始化的结尾之后的第一个位置)数据段)。增加程序中断的作用是为进程分配内存。减少中断会释放内存。

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

sbrk()通过增加字节来增加程序的数据空间。以0增量调用sbrk()可以找到程序中断的当前位置。