SIGALRM 的处理程序不起作用

handler for SIGALRM does not work

我正在执行任务。

作业正在 Linux 系统(Ubuntu 上)制作虚拟实时操作系统。

我的问题是 SIGALRM,它是调度程序的处理程序。

void scheduler(int signo) {
        /*variables */
        printf("Scheduler awake!!\n");
        /* Do
           Schedule */
}

int RunScheduler(void) {
        signal(SIGALRM, scheduler);
        alarm(1);
        while(1)
                pause();
        return 0;
}

int main() {
        RunScheduler();
}

函数调度程序(处理程序)不工作。 alarm(1) 工作,但在 alarm(1) 之后暂停。

信号处理程序不工作有什么原因吗?

完全相同的代码在我的机器上运行正常。

我使用了 Ubuntu 捆绑的 gcc 编译器。您使用的是同一个编译器吗?