gpt4 book ai didi

c - Unix 中 sbrk 系统调用的使用

转载 作者:行者123 更新时间:2023-11-30 18:39:05 25 4
gpt4 key购买 nike

sbrk 系统调用在 Unix 中有何用途?在 C 中如何使用它?大多数人说malloc使用sbrk系统调用来分配内存。那么,sbrk系统调用是如何分配内存的呢? sbrk 的参数和返回类型是什么?

最佳答案

sbrk() 采用正整数作为参数。它将当前进程堆的大小增加了该字节数,然后将 void * 返回到堆的新末尾。

但是,您正在阅读的信息已过时。引用此系统调用的 Mac OS X 手册页:

The brk and sbrk functions are historical curiosities left over from earlier days before the advent of virtual memory management.

现代系统不使用 sbrk() 进行内存管理,因为它非常有限。特别是,它无法管理内存中不连续的堆!相反,他们使用 mmap() 系统调用来根据需要映射新的内存范围。

关于c - Unix 中 sbrk 系统调用的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31129563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com