gpt4 book ai didi

在 C 中创建定时器

转载 作者:行者123 更新时间:2023-12-04 23:53:50 25 4
gpt4 key购买 nike

如何创建计时器?类似于 Visual Basic 中的计时器;您设置一个时间间隔,如果启用了计时器,它会一直等到时间结束。

我不想使用现有的库,因为我想知道它是如何工作的。

所以..我只希望有人能向我解释计时器是如何工作的,也许给我一个代码示例来创建我自己的 - 如果它不是太高级的话。

编辑:我想为 linux 系统创建一个。

最佳答案

以下是将在 Linux 下运行的非常基本的示例。如果您查看 signal 的手册页,您会发现它已被弃用,取而代之的是 sigaction。重要的是不要忘记 volatile,否则 while 循环可能不会终止,具体取决于优化。还要注意 SIGALRM 是一种高度共享的资源,它可以被其他计时器工具使用,而且只有一个。

程序将打印 Waiting 三秒钟,然后在打印 Finally ... 一次后退出。

#include <stdio.h>
#include <unistd.h>
#include <signal.h>

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;
}

关于在 C 中创建定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15348318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com