用C创建一个Timer
如何创建计时器? 像Visual Basic中的计时器; 你设置一个间隔,如果启用了定时器,它会一直等到时间结束。
我不想使用现有的库,因为我想知道它是如何工作的。
所以..我只是希望有人可以解释我的计时器是如何工作的,也许可以给我一个代码来创建我自己的例子 – 如果它不是太先进的话。
编辑:我想为Linux系统创建一个。
你可以做到这一点
#include #include int main() { printf("wait\n"); sleep(3); printf("time elapsed\n"); return 0; }
以下是一个在Linux下运行的非常基本的示例。 如果您查看signal
的手册页,您会看到它被弃用以支持sigaction
。 重要的是不要忘记volatile
,否则while
循环可能不会终止,具体取决于优化。 另请注意, SIGALRM
是一种高度共享的资源,可供其他计时器设备使用,并且只有一个。
程序将打印Waiting
三秒钟而不是打印后退出Finally ...
一次。
#include #include #include volatile int mark = 0; void trigger(int sig) { mark = 1; } int main(void) { signal(SIGALRM, trigger); alarm(3); while (!mark) { printf("Waiting\n"); } printf("Finally ...\n"); return 0; }