标签: c++ system-calls
这些函数的返回值并不意味着它们是否成功。还有办法知道吗?
答案 0 :(得分:2)
sigsetjmp不能失败 - 它只是将调用者的上下文存储到提供的缓冲区中。
sigsetjmp
siglongjmp没有返回,因此无法通过返回值指示失败。在调用缓冲区之前,必须确保缓冲区有效。
siglongjmp
在C ++中,你通常不能使用这些函数;如果在那里的调用堆栈和对longjmp的匹配调用之间存在任何具有非平凡析构函数的自动对象,则调用setjmp会给出未定义的行为。
longjmp
setjmp