当前位置: 技术问答>linux和unix
setjmp、longjmp的实现,请指教
来源: 互联网 发布时间:2016-04-14
本文导语: setjmp、longjmp的实现,请指教 想自己实现这两个函数,想了一下,主要要考虑三个部分 1.寄存器的保存:这个可以通过内嵌汇编完成,比较简单。 2.保存当前信号:没想好怎么弄。 3.setjmp返回0,调用longjmp时在setjmp标...
setjmp、longjmp的实现,请指教
想自己实现这两个函数,想了一下,主要要考虑三个部分
1.寄存器的保存:这个可以通过内嵌汇编完成,比较简单。
2.保存当前信号:没想好怎么弄。
3.setjmp返回0,调用longjmp时在setjmp标记处返回整数:大概有个想法,还没试验。
后两个不知道怎么实现。。
想自己实现这两个函数,想了一下,主要要考虑三个部分
1.寄存器的保存:这个可以通过内嵌汇编完成,比较简单。
2.保存当前信号:没想好怎么弄。
3.setjmp返回0,调用longjmp时在setjmp标记处返回整数:大概有个想法,还没试验。
后两个不知道怎么实现。。
|
setjmp跟longjmp都不一定保存当前信号掩码的, sigsetjmp才保持信号掩码
你可以定义一个全局变理或是静态变量来保存setjmp时当前的信号掩码啊,在siglongjmp的时候以保存的值恢复就可以了.
你可以定义一个全局变理或是静态变量来保存setjmp时当前的信号掩码啊,在siglongjmp的时候以保存的值恢复就可以了.