我正在分析一个C程序,我发现这里有一个奇怪的函数调用函数定义:
static void endSignal (int32_t dummy)
{
if (nTerminating) return;
nTerminating=1;
printf("terminating....\n");
terminateDLNAsystem();
sleep(1);
exit (0);
}
此函数采用int32_t参数! 现在这是调用" endSignal"
的主要功能int32_t main (int32_t argc, char **argv)
{
/*Statements
.
.
*/
signal(SIGINT, endSignal);
signal(SIGABRT, endSignal);
signal(SIGQUIT, endSignal);
signal(SIGTERM, endSignal);
return 0;
}
主函数调用endSignal而没有任何参数,在这种情况下会发生什么?
答案 0 :(得分:6)
主要功能调用signal
个功能而非endSignal
。
endSignal
是充当回调的参数。
这是将函数指针作为参数传递。