如何检查malloc是否持有锁

时间:2018-05-08 11:27:49

标签: c++ memory locking malloc signals

我在代码中遇到的问题如下:

dp <- 2
sprintf("%.*f", dp, 0.123)
# [1] "0.12"

现在经过一些谷歌搜索后,我才知道我不应该在信号处理程序中分配内存。

有没有办法处理这个问题,这不需要我避免在信号处理程序中使用malloc?例如检查malloc是否已在进行中或持有锁定。

1 个答案:

答案 0 :(得分:2)

在信号处理程序内部,您只能调用async-signal-safe functionsmalloc不是其中之一。您可以尝试预先分配要在信号处理程序中使用的内存(在安装信号处理程序之前)。