我已经构建了一个函数(基于示例),它允许我忽略信号SIGINT
。该函数计算用户按下的次数CONTROL + C
(中断SIGINT
)。功能如下
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
sig_atomic_t sigint_count = 0;
void handler (int signal_number)
{
++sigint_count;
printf ("SIGINT was raised %d times\n", sigint_count);
}
int main ()
{
struct sigaction sa; //Declaração da estrutura sigaction
memset (&sa, 0, sizeof (sa));//Libertação da memória usada
sa.sa_handler = &handler;
sigaction (SIGINT, &sa, NULL);
while(1);
return 0;
}
我的疑问是关于这行代码
sigaction (SIGINT, &sa, NULL);
我试图写另一个不同的东西,NULL
但它不起作用。为什么NULL
?NULL
那是什么意思sigaction
?
PS:它可以按我的意愿工作