虽然我知道Unix系统调用brk和函数sbrk是做什么的,但我不知道它们代表什么。有谁能开导我吗?
发布于 2011-07-29 06:48:19
它来自"break value“。
我引用:“更改是通过重置进程的中断值并分配适当的空间量来完成的。中断值是超出数据段末尾的第一个位置的地址。”
(来源:http://www.s-gms.ms.edus.si/cgi-bin/man-cgi?brk+2)
发布于 2020-05-03 02:10:56
只需阅读man page
brk()和sbrk()更改程序中断的位置,它定义了进程数据段的结束(即程序中断是未初始化数据段结束后的第一个位置)。增加程序中断的效果是为进程分配内存;减少中断将释放内存。
brk()将数据段的末尾设置为addr指定的值,当该值合理时,系统有足够的内存,并且进程不会超过其最大数据大小(参见setrlimit(2))。
sbrk()按字节递增程序的数据空间。可以使用增量为0的调用sbrk()来查找程序中断的当前位置。
https://stackoverflow.com/questions/6866660
复制相似问题