回调函数


计算机程序设计中,回调函数,或简称回调(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>**代表该程序的进程号。运行之后,该程序应当会有反应。)