【发布时间】:2014-01-18 17:49:51
【问题描述】:
我在 Advanced Unix Programming(以及其他几本书)中读到 Linux malloc() 使用 Linux 系统调用 sbrk() 从操作系统请求内存。
我正在查看 glibc malloc.c 代码,我可以在 cmets 中看到很多提及 sbrk(),但在代码中没有直接提及。
当malloc() 从操作系统请求内存时,sbrk() 是如何/在哪里引用/使用的?
(这可能是我对如何从 C 运行时库进行系统调用的普遍误解。如果是这样,我很想知道它们是如何进行的??)
【问题讨论】:
-
虽然我不确定
sbrk的实际位置,但 C 中的系统调用和函数之间没有什么不同,只是控制完全由操作系统管理,直到系统调用完成。 -
@BasileStarynkevitch 您能否简要说明这些原因?
-
阅读手册页。
sbrk已从最新的 Posix 标准中删除。
标签: c linux memory-management malloc sbrk