相关疑难解决方法(0)

brk()系统调用了什么?

根据Linux程序员手册:

brk()和sbrk()改变程序中断的位置,它定义了进程数据段的结束.

这里的数据段意味着什么?是仅仅将数据段或数据,BSS和堆组合在一起?

根据维基:

有时,数据,BSS和堆区域统称为"数据段".

我认为没有理由改变数据段的大小.如果它是数据,BSS和堆集合那么它是有意义的,因为堆将获得更多的空间.

这让我想到了第二个问题.在我到目前为止阅读的所有文章中,作者都​​说堆积增长,堆栈向下增长.但是他们没有解释的是当堆占用堆和堆栈之间的所有空间时会发生什么?

在此输入图像描述

c unix linux memory-management brk

173
推荐指数
4
解决办法
8万
查看次数

malloc()是如何在内部实现的?

任何人都可以解释malloc()内部如何运作

我有时会这样做strace program,我看到很多sbrk系统调用,正在man sbrk讨论它的使用情况,malloc()但不多.

c memory malloc system-calls sbrk

112
推荐指数
3
解决办法
12万
查看次数

标签 统计

c ×2

brk ×1

linux ×1

malloc ×1

memory ×1

memory-management ×1

sbrk ×1

system-calls ×1

unix ×1