我的情况很简单:我想我的C ++程序来处理Unix的信号。 要做到这一点,提供的glibc在signal.h中调用的函数sigaction
,其期望接收一个函数指针作为它的第二个参数。
extern "C"
{
void uponSignal(int);
}
void uponSignal(int)
{
// set some flag to quit the program
}
static
void installSignalHandler()
{
// initialize the signal handler
static struct sigaction sighandler;
memset( &sighandler, 0, sizeof(struct sigaction) );
sighandler.sa_handler = uponSignal;
// install it
sigaction( SIGINT, &sighandler, nullptr );
}
我的问题是:是extern "C"
必要的联动符?
奖金的问题:可以uponSignal声明static
?