Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用信号处理程序从函数返回_C_Linux_Operating System_Signals - Fatal编程技术网

C 使用信号处理程序从函数返回

C 使用信号处理程序从函数返回,c,linux,operating-system,signals,C,Linux,Operating System,Signals,是否可以编写一个信号处理程序来强制程序从函数返回 例如,在以下代码中: void myfun() { __asm__("repeat: jmp repeat"); } myfun()有一个无限循环。我想停止这个不确定循环,并通过发出一些信号返回到主函数。这可能吗 谢谢。在信号处理程序中,对main中准备的setjmp执行longjmp,在给定的汇编代码中,没有检查易失性变量。我使用它来分析分支指令的处理器性能,所以来自其他变量的干扰应该是最小的。理想情况下,我希望引发一个允许函数返回的

是否可以编写一个信号处理程序来强制程序从函数返回

例如,在以下代码中:

void myfun() {
    __asm__("repeat: jmp repeat");
}
myfun()有一个无限循环。我想停止这个不确定循环,并通过发出一些信号返回到主函数。这可能吗


谢谢。

在信号处理程序中,对
main

中准备的
setjmp
执行
longjmp
,在给定的汇编代码中,没有检查易失性变量。我使用它来分析分支指令的处理器性能,所以来自其他变量的干扰应该是最小的。理想情况下,我希望引发一个允许函数返回的异常。@Arani我检查了标准,没有看到任何条款禁止您直接从处理程序调用
longjmp
,然后循环就不必更改了。我将相应地改变我的答案。