作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
jmp_buf a;
void sig_handler(int signum) {
if(signum == SIGINT) exit(0);
printf("In the handler\n");
sleep(2);
alarm(3);
longjmp(a,1);
}
int main(int argc, char *argv[]) {
int j=0;
struct sigaction sa;
memset(&sa, 0, sizeof(struct sigaction));
sa.sa_handler = sig_handler;
sigfillset(&sa.sa_mask);
sa.sa_flags = 0;
sigaction(SIGALRM, &sa, NULL);
alarm(2);
j = setjmp(a);
while(1){
printf("In the main\n");
pause();
}
return 0;
}
最佳答案
longjmp
和信号的交互作用未指定。请改用siglongjmp
。此代码应工作:
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <stdlib.h>
#include <unistd.h>
#include <setjmp.h>
sigjmp_buf a;
void sig_handler(int signum) {
if(signum == SIGINT) exit(0);
printf("In the handler\n");
sleep(2);
alarm(3);
siglongjmp(a,1);
}
int main(int argc, char *argv[])
{
int j=0;
struct sigaction sa;
memset(&sa, 0, sizeof(struct sigaction));
sa.sa_handler = sig_handler;
sigfillset(&sa.sa_mask);
sa.sa_flags = SA_NODEFER;
sigaction(SIGALRM, &sa, NULL);
alarm(2);
j = sigsetjmp(a, 1);
while(1){
printf("In the main\n");
pause();
}
return 0;
}
关于c - Linux C蓝光。 setjmp longjmp警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61628569/
我是 Linux 的新手,已经从 Windows 切换到 headless 媒体中心。我正在运行 KODIBuntu。 我正在尝试实现一个自动翻录系统来备份我的硬拷贝媒体收藏。我喜欢 Linux 的概
我是一名优秀的程序员,十分优秀!