嗨,我需要从一个地方跳到另一个地方......
但我想知道哪个更好用,setjmp或ucontext,比如:
请提供我要求的更多信息,例如示例或一些文档......
我在网上搜索过,但是我只在C语言中得到异常处理,就像setjmp的例子一样,我对ucontex.h一无所知,我得知它用于多任务,它和pthread的区别是什么?
非常感谢.
setjmp便携式(ISO C89和C99)和ucontext(过时的SUSv3并从SUSv4/POSIX 2008中删除)不是.但是ucontext规格要强得多.在实践中,如果你使用带有setjmp/ longjmp和信号处理程序以及备用信号处理堆栈的恶劣黑客,你可以使它们具有同样强大的功能ucontext,但它们不是"可移植的".
也不应该用于多线程.为此目的POSIX线程(pthread函数).我有几个理由说这个:
ucontext 已从标准中删除,未来的操作系统可能不支持(或者甚至是现有的操作系统?)