MST

星途 面试题库

面试题:C语言在Linux下如何实现简单的定时器重复触发

在Linux环境中,使用C语言编写一个简单程序,利用系统定时器实现每2秒重复触发一次特定函数的功能,描述关键步骤并给出核心代码片段。
48.1万 热度难度
编程语言C

知识考点

AI 面试

面试题答案

一键面试

关键步骤

  1. 包含必要的头文件,如<signal.h>用于信号处理,<unistd.h>用于alarm函数等。
  2. 定义要重复触发的特定函数。
  3. 使用signal函数注册信号处理函数,用于处理SIGALRM信号。
  4. 使用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;
}