面试题答案
一键面试关键步骤
- 包含必要的头文件,如
<signal.h>
用于信号处理,<unistd.h>
用于alarm
函数等。 - 定义要重复触发的特定函数。
- 使用
signal
函数注册信号处理函数,用于处理SIGALRM
信号。 - 使用
alarm
函数设置定时器,每2秒触发一次SIGALRM
信号。
核心代码片段
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
// 定义要重复触发的函数
void specific_function() {
printf("特定函数被触发\n");
}
// 信号处理函数
void alarm_handler(int signum) {
specific_function();
// 重新设置定时器,每2秒触发一次
alarm(2);
}
int main() {
// 注册信号处理函数
signal(SIGALRM, alarm_handler);
// 首次设置定时器,2秒后触发
alarm(2);
// 程序进入无限循环,防止退出
while(1) {
sleep(1);
}
return 0;
}