sigsetjmp siglongjmp

这两个函数的作用可以类比setjmp和longjmp,只不过这两个函数用在信号处理函数中。

在信号处理函数执行的过程中,会阻塞引发该信号处理函数的信号(把该信号添加到信号屏蔽字中),如果在信号处理函数中使用longjmp则,信号屏蔽字是否恢复是未定义的。

所以新增两个函数,至于在siglongjmp后是否恢复被屏蔽的信号则需要看sigsetjmp的调用。

sigsetjmp的函数声明为:

int sigsetjmp(sigjmp_buf env, int savesigs);

若savesigs非0,则在调用siglongjmp跳转回去的时候保留信号屏蔽字。

你可能感兴趣的:(sigsetjmp siglongjmp)