Memory 我可以把映射内存给malloc吗?

Memory 我可以把映射内存给malloc吗?,memory,posix,glibc,mmap,Memory,Posix,Glibc,Mmap,假设我有一大块映射内存,我已经用完了。它来自mmaping匿名内存或使用MAP\u PRIVATE。我可以munmapit,然后在下次分配足够大的资源时再次使用mallocmmap 我是否可以直接将内存分配给malloc?我可以说“嘿malloc,这是我映射的地址范围。把它用作堆空间。可以自由地mprotect,mremap,甚至munmap按您的意愿进行映射。” 我正在linux上使用glibc。glibc malloc调用\uuuuMoreCore(函数指针)以获得更多内存。请参见。但是,这

假设我有一大块映射内存,我已经用完了。它来自
mmap
ing匿名内存或使用
MAP\u PRIVATE
。我可以
munmap
it,然后在下次分配足够大的资源时再次使用
malloc
mmap

我是否可以直接将内存分配给
malloc
?我可以说“嘿
malloc
,这是我映射的地址范围。把它用作堆空间。可以自由地
mprotect
mremap
,甚至
munmap
按您的意愿进行映射。”


我正在linux上使用glibc。

glibc malloc调用
\uuuuMoreCore
(函数指针)以获得更多内存。请参见
。但是,这通常不起作用,因为实现假定函数的行为类似于
sbrk
,并从单个较大的内存区域返回内存。实际上,使用glibc-malloc,使内存可供malloc重用的唯一现实方法是调用
munmap


其他malloc实现允许提供内存(在某些情况下作为内部接口)。例如,musl的malloc有一个名为
\uuu malloc\u denate
的函数,它应该满足您的要求。

您看过了吗?我看过了。我还发现了
malloc\u get\u state
malloc\u get\u state
、和
mallopt
,但似乎没有一个能满足我的要求。