gpt4 book ai didi

c++ - FreeBSD 内核中是否有用于 Malloc 调用的标志 "M_FAST"?

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:53 25 4
gpt4 key购买 nike

如果你知道有一个,你能告诉我它的用途吗?如果不是,请这样说 :) 谢谢。

签名:void * malloc(unsigned long size, struct malloc_type type, int flags);

例如。其他标志是...

 M_ZERO  
Causes the allocated memory to be set to all zeros.

M_WAITOK
Indicates that it is OK to wait for resources. If the request
cannot be immediately fulfilled, the current process is put to
sleep to wait for resources to be released by other processes.
The malloc(), realloc(), and reallocf() functions cannot return
NULL if M_WAITOK is specified.**

这是我困惑的根源

编辑:

我在下面的回答中对 M_FAST 进行了说明。

最佳答案

FreeBSD 内核确实有它自己的 malloc() 实现,它与标准库的签名不同:

在编写内核代码时(对于许多系统,不仅仅是 FreeBSD),通常会有一些限制阻止内核代码使用标准库,因此通常会有一个内核库提供类似的功能,但与标准库有不同的相似之处和不同之处.

不管喜欢与否,内核编程很特别。

但是,我没有看到在 FreeBSD 内核 malloc() 例程中支持 M_FAST 标志的证据。

如果曾经存在过,也许它表示不应该使用互斥锁,也许表明调用者确定没有必要,或者更喜欢分配失败而不是阻塞同步对象 - 我只是在猜测什么可能曾经是,如果曾经是的话。

关于c++ - FreeBSD 内核中是否有用于 Malloc 调用的标志 "M_FAST"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1684821/

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