gpt4 book ai didi

linux - 我可以捕捉到内存不足的错误吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:38 26 4
gpt4 key购买 nike

我想写一个安全的程序,所以我会在程序开始时在堆中分配所需的空间。

  1. 是否有可能从某个点开始禁用堆内存分配,像 toggle_panic_on_heap_allocation 吗?
  2. 如何在初始化期间捕获“内存不足”错误?默认行为是中止,但我不想崩溃,只是退出并显示错误代码?

最佳答案

不,你无法捕获内存不足的错误。

some discussion关于添加(部分)支持,但是捕获 OOM 错误有很多问题。

您可以做的是启动一个新进程并通过 ipc-channels 与其通信。 .可能过度分配的进程将被终止,其他进程可以从中恢复并重新启动失败的进程。


您不能在运行时禁用堆分配,但这并不是很有趣,因为您的程序将不得不在您分配堆时中止。相反,您应该静态检查没有堆分配。在 clippy 中有一些工作/谈话可以添加这样的静态分析,如 "restriction"

关于linux - 我可以捕捉到内存不足的错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38302695/

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