64,648
社区成员
发帖
与我相关
我的任务
分享
include<setjmp.h>
#include<signal.h>
jmp_buf env;
void handler_sigrtmin15(int signo)
{
printf("recv SIGRTMIN+15\n");
longjmp(env,1);
}
void handler_sigrtmax15(int signo)
{
printf("recv SIGRTMAX-15\n");
longjmp(env,2);
}
int main()
{
switch(setjmp(env))
{
case 0:
printf("this is the first setjmp back and don't call longjmp\n");
break;
case 1:
printf("return from SIGRTMIN+15\n");
break;
case 2:
printf("return from SIGRTMAX-15\n");
break;
default:
break;
}
signal(SIGRTMIN+15,handler_sigrtmin15);
signal(SIGRTMAX-15,handler_sigrtmax15);
while(1);
return 0;
}