我正在阅读Bjarne Stroustrup的 The Design and Evolution of C++。关于异常处理和异步信号,如下所述:
异常可以用来处理信号之类的事情吗?几乎可以肯定,在大多数 C 环境中都不会。问题是 C 使用了像 malloc 这样不可重入的函数。如果在 malloc 中间发生中断并导致异常,则无法阻止异常处理程序再次执行 malloc。
一个 C++ 实现,其中调用序列和整个运行时库是围绕重入的要求设计的,这将使信号有可能抛出异常
作者所说的“没有办法阻止异常处理程序再次执行malloc”是什么意思?使函数可重入如何使从信号处理程序中抛出异常成为可能?