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 编译器。您使用的是同一个编译器吗?
我正在执行任务。
作业正在 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 编译器。您使用的是同一个编译器吗?