C语言中的signal和alarm是用于处理信号的函数。信号是一种中断,它可以在程序执行过程中被触发,从而使程序暂停执行并执行相应的操作。
signal函数用于设置信号处理函数,当程序接收到指定的信号时,会自动调用该函数。例如:
#include <signal.h>
#include <stdio.h>
void signal_handler(int signum) {
printf("Received signal %d\n", signum);
}
int main() {
signal(SIGINT, signal_handler); // 设置SIGINT信号的处理函数为signal_handler
while (1) {
printf("Running...\n");
}
return 0;
}
在这个例子中,我们使用signal函数将SIGINT信号的处理函数设置为signal_handler。当程序接收到SIGINT信号时,会自动调用signal_handler函数。
alarm函数用于设置定时器,当定时器到达指定的时间时,会自动调用指定的函数。例如:
#include <time.h>
#include <stdio.h>
void alarm_handler() {
printf("Alarm triggered!\n");
}
int main() {
alarm(5); // 设置定时器5秒后触发alarm_handler函数
while (1) {
printf("Running...\n");
}
return 0;
}
在这个例子中,我们使用alarm函数设置了一个定时器,当定时器到达5秒时,会自动调用alarm_handler函数。