面试题答案
一键面试-
实现步骤:
- 步骤一:包含必要的头文件
- 需包含
<signal.h>
用于信号处理相关函数,<unistd.h>
用于alarm
函数等。
- 需包含
- 步骤二:定义信号处理函数
- 定义一个函数,该函数的参数为
int
类型,用于接收信号编号。在函数内编写处理信号的逻辑,比如打印一条信息表示接收到了信号。
- 定义一个函数,该函数的参数为
- 步骤三:设置信号处理函数
- 使用
signal
函数来设置信号SIGALRM
的处理函数。
- 使用
- 步骤四:触发信号
- 使用
alarm
函数来设置一个定时器,当定时器到期时,会发送SIGALRM
信号。
- 使用
- 步骤一:包含必要的头文件
-
关键代码片段:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
// 信号处理函数
void sigalrm_handler(int signum) {
printf("Received SIGALRM signal.\n");
}
int main() {
// 设置SIGALRM信号的处理函数
signal(SIGALRM, sigalrm_handler);
// 设置定时器,5秒后触发SIGALRM信号
alarm(5);
printf("Waiting for SIGALRM signal...\n");
while (1) {
// 等待信号,这里可以做其他事情
sleep(1);
}
return 0;
}