2011/12/01

コールバック関数のテスト

特定のタイミングで何らかの処理を行わせたいときに使用する、コールバック関数のテストコードを書いてみました。
コールバック関数の形式にしておけば、渡す関数を変えるだけで異なる処理ができるようになります。
pthreadの作成時や、signal関数を使うときも、このコールバック関数の方式がとられています。

//
//コールバック関数のテスト
//

#include <stdio.h>


void *callBackFunction(void *data)
{
        printf("コールバック関数が呼ばれました。\n何かの処理を行います。\n");
}

//コールバック関数を引数とする関数。
void somefunc(void* (*callbackFunc)(void*))
{
        printf("some process...\n");
        printf("some process2...\n");
    
        //コールバック関数を呼ぶ。
        callbackFunc(NULL);
    
        printf("finish somefunc\n");
}


int main(void)
{
        somefunc(callBackFunction);
        return -1;
}


実行例:

iMac:~ lhaplus8888$ ./a.out
some process...
some process2...
コールバック関数が呼ばれました。
何かの処理を行います。
finish somefunc
iMac:~ lhaplus8888 $ 

1 件のコメント: