回调函数
在计算机程序设计中,回调函数,或简称回调(Callback 即 call then back 被主函数调用运算后会返回主函数),是指通过参数 将函数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层代码调用在高层定义的子程序。
下列C 语言代码描述了利用回调处理POSIX风格的信号(在本示例中为SIGUSR1)的过程。值得注意的是,在处理信号的过程中,调用printf(3)是不安全的。
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
void sig(int signum)
{
printf("Received signal number %d!\n", signum);
}
int main(int argc, char *argv[])
{
signal(SIGUSR1, sig);
pause();
return 0;
}
系统调用pause(3)
会导致这个例子不做任何有意义的事,但这样做可以给你充分的时间来给这个进程发送信号。(在类 Unix 系统上,可以调用kill -USR1 **<pid>**
,其中**<pid>**
代表该程序的进程号。运行之后,该程序应当会有反应。)