虽然我知道Unix系统调用brk
和函数sbrk
做了什么,但我不知道他们代表什么。谁能开导我?
答案 0 :(得分:11)
它来自“破碎价值”。
我引述: “通过重置进程的中断值并分配适当的空间量来进行更改。中断值是超出数据段末尾的第一个位置的地址。”
答案 1 :(得分:1)
只需阅读man page:
brk()和sbrk()更改程序中断的位置,该位置定义了流程数据段的结尾(即,程序中断是未初始化的结尾之后的第一个位置)数据段)。增加程序中断的作用是为进程分配内存。减少中断会释放内存。
brk()将数据段的末尾设置为addr指定的值,当该值合理时,系统具有足够的内存,并且进程未超过其最大数据大小(请参阅setrlimit(2))。
sbrk()通过增加字节来增加程序的数据空间。以0增量调用sbrk()可以找到程序中断的当前位置。