如何知道sigsetjmp或siglongjmp是否失败?

时间:2012-04-17 15:09:40

标签: c++ system-calls

这些函数的返回值并不意味着它们是否成功。还有办法知道吗?

1 个答案:

答案 0 :(得分:2)

sigsetjmp不能失败 - 它只是将调用者的上下文存储到提供的缓冲区中。

siglongjmp没有返回,因此无法通过返回值指示失败。在调用缓冲区之前,必须确保缓冲区有效。

在C ++中,你通常不能使用这些函数;如果在那里的调用堆栈和对longjmp的匹配调用之间存在任何具有非平凡析构函数的自动对象,则调用setjmp会给出未定义的行为。