signal 和 alarm函数

针对一次性的动作,最简单的就是使用signal和alarm函数来调用。
假如在callback函数未执行的时候,要取消的话,那么可以使用alarm(0)来取消调用该回调函数。我们用如下的代码来测试(看输出的全局变量的值):

#include #include #include #include #include #include int Value; void callback_onAlarm(int param); int main(void) { printf("Main thread\n"); Value = https://www.it610.com/article/10; signal(SIGALRM, callback_onAlarm); printf("\n"); alarm(10); sleep(5); alarm(0); Value = https://www.it610.com/article/50; signal(SIGALRM, callback_onAlarm); printf("\n"); alarm(10); while(1); return 0; }void callback_onAlarm(int param) { printf("Alarm callback, Value is %d\n", Value); alarm(0); }

以上的代码,其输出的结果如下:
Main threadAlarm callback, Value is 50

【signal 和 alarm函数】

    推荐阅读