信号及报警功能
Signal and alarm function
我在收到的 C 编程任务中需要一些帮助或建议...
任务是使用 alarm(sec)
需要调用信号 SIGALRM
。
我必须在 1 秒内增加一个 long int 数字,并在屏幕上打印出这段时间内该数字增加了多少次。我怀疑它必须与 alarm(1);
我有增加数字的循环...有点完全不知道如何在 1 秒后停止它,尤其是 signal(SIGALRM,xxx)
我可以粘贴我的代码吗?
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
int loop_function() {
int counter = 1;
long int n = 1;
while(n!=0) {
++counter;
n++;
printf("%d: %d\n",counter,n);
}
}
int main() {
loop_function();
}
可能,这就是您要找的。
#include<stdio.h>
#include<signal.h>
#include<unistd.h>
void sigalrm_handler(int);
int loop_function();
static int counter = 1;
static long int n = 1;
int main()
{
signal(SIGALRM, sigalrm_handler);
//This will set the alarm for the first time.
//Subsequent alarms will be set from sigalrm_handler() function
alarm(1);
printf("Inside main\n");
while(1)
{
loop_function();
}
return(0);
}
void sigalrm_handler(int sig)
{
printf("inside alarm signal handler\n");
printf("%d: %d\n",counter,n);
//exit(1);
alarm(1);
}
int loop_function()
{
++counter;
n++;
}
我在收到的 C 编程任务中需要一些帮助或建议...
任务是使用 alarm(sec)
需要调用信号 SIGALRM
。
我必须在 1 秒内增加一个 long int 数字,并在屏幕上打印出这段时间内该数字增加了多少次。我怀疑它必须与 alarm(1);
我有增加数字的循环...有点完全不知道如何在 1 秒后停止它,尤其是 signal(SIGALRM,xxx)
我可以粘贴我的代码吗?
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
int loop_function() {
int counter = 1;
long int n = 1;
while(n!=0) {
++counter;
n++;
printf("%d: %d\n",counter,n);
}
}
int main() {
loop_function();
}
可能,这就是您要找的。
#include<stdio.h>
#include<signal.h>
#include<unistd.h>
void sigalrm_handler(int);
int loop_function();
static int counter = 1;
static long int n = 1;
int main()
{
signal(SIGALRM, sigalrm_handler);
//This will set the alarm for the first time.
//Subsequent alarms will be set from sigalrm_handler() function
alarm(1);
printf("Inside main\n");
while(1)
{
loop_function();
}
return(0);
}
void sigalrm_handler(int sig)
{
printf("inside alarm signal handler\n");
printf("%d: %d\n",counter,n);
//exit(1);
alarm(1);
}
int loop_function()
{
++counter;
n++;
}