如何正确使用SIGALRM?
发布时间:2020-12-16 09:44:09 所属栏目:百科 来源:网络整理
导读:我已经制作了这个代码,我必须使用警报信号(SIGALRM)让程序每隔3秒打印一条消息“我还活着”. 但它不起作用,只有当我按下CTR-C时,它才会发出“我活着”的消息,我猜 我没有把SIGALRM功能放在正确的位置,你能帮助我吗? #include stdlib.h#include signal.h#inc
我已经制作了这个代码,我必须使用警报信号(SIGALRM)让程序每隔3秒打印一条消息“我还活着”.
但它不起作用,只有当我按下CTR-C时,它才会发出“我活着”的消息,我猜 #include <stdlib.h> #include <signal.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> unsigned Count = 0; //Counts the number of times it receives the signal SIGINT. void mypause(int sign); //prototype of the function my pause. void mypause(int sign) { signal(SIGALRM,mypause); //Set alarm clock for 3 seconds. alarm(3); printf("I'm Alive"); signal(SIGINT,mypause); switch (sign) { case SIGINT: printf("nPressed CTR-Cn"); printf("I'm running,waiting for a signn"); Count++; break; case SIGQUIT: printf("nPressed CTR-n"); printf("You pressed CTR-C %d times",Conta); exit(0); //Exit program. break; } } int main() { signal(SIGALRM,mypause); signal(SIGINT,mypause); signal(SIGQUIT,mypause); printf("nI'm running waiting for a signaln"); while (1) {} return (0); } 解决方法
也许在你的main()中添加alarm(3)?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |