int InitSignal(void)
{
int i;
struct sigaction l_stAct;
sigset_t l_stSigset;
int l_eSignalno[] = { SIGALRM, SIGHUP, SIGINT, SIGQUIT, SIGTERM, SIGILL, SIGFPE, SIGSEGV, SIGPIPE, SIGUSR1, SIGUSR2 };
sigemptyset(&l_stSigset);
sigprocmask(SIG_UNBLOCK, &l_stSigset, NULL);
sigemptyset(&l_stAct.sa_mask);
l_stAct.sa_flags = SA_SIGINFO;
l_stAct.sa_sigaction = SignalFun;
for (i = 0; i < sizeof(l_eSignalno) / 4; i++)
{
if (sigaction(l_eSignalno[i], &l_stAct, NULL) < 0)
{
PRINTF("Inital signal: %d Falure\n", l_eSignalno[i]);
return -1;
}
}
g_iPollFlags = 1;
return 0;
}