调用时longjmp(),所有这些寄存器都会自动恢复,并在相应的调用中继续执行setjmp(),但这次setjmp()返回值不同(类似于fork()父节点和子节点的返回值不同).
setjmp()/ longjmp()只保存有限的环境.特别是,它们只保存堆栈指针,而不是完整堆栈,因此您只能返回相同的函数或调用函数.POSIX具有setcontext()允许在堆栈之间切换的功能,使其更加直接用于实现用户空间线程(原纤维,绿线程......等).
| 归档时间: |
|
| 查看次数: |
6240 次 |
| 最近记录: |