第1关:信号处理函数
在 do _signal中分别为信号 SIGUSR1 、 SIGUSR2 注册信号处理函数 funcA 和 funcB ,而后将 g_i4event 置为 1;
完成两个信号处理函数,其中 funcA 中将 g_i4event 置为 2, funcB 中将 g_i4event 为 3。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <signal.h>
// 全局变量,用于记录事件状态
int g_i4event;
// 定义 sighandler_t 类型,表示信号处理函数的指针类型
typedef void (*sighandler_t)(int);
/* 实现 funcA 和 funcB */
// 信号处理函数 funcA
// 功能:当接收到 SIGUSR1 信号时,将 g_i4event 设置为 2
void funcA(int signo)
{
g_i4event = 2;
}
// 信号处理函数 funcB
// 功能:当接收到 SIGUSR2 信号时,将 g_i4event 设置为 3
void funcB(int signo)
{
g_i4event = 3;
}
// 函数:do_signal
// 功能:设置信号处理函数,并初始化 g_i4event
int do_signal(void)
{
// 设置