1

我想刷新并控制时间间隔的变化。大多数人只有一个无限循环,不断地从 time.h 轮询时间并浪费循环。有没有一种方法可以在不过多干扰系统的情况下更改时钟?我正在使用 c/c++ 并且真的想学习如何仅使用 linux 库手动执行此操作。大多数程序都需要时间的概念。

我想收到系统时钟更新的通知。我正在尝试做一个实时响应的科学应用程序。Sleep() 之类的东西只能让我指定从执行该声明开始的时间延迟。Localtime() 和 c 标头中的字符串返回时间只给了我执行的具体时间。如果我这次使用它为时已晚,它已经过去了太多纳秒。

4

2 回答 2

1

阅读time(7)手册页以了解如何使用系统调用gettimeofday(2)setitimer(2)clock_gettime(2)timer_create(2)等...以及相关的库函数 ( strftime, localtime, ...)到时间。

如果您想编写接收定时器事件的应用程序,请了解定时器和例如SIGALRM信号。读取第一个信号(7)

但是你真的应该阅读Advanced Unix ProgrammingAdvanced Linux Programming并了解什么是系统调用

您可能希望使用poll(2)进行轮询或等待。

于 2012-09-10T01:43:22.147 回答
0

也是可移植且与大多数其他任务兼容的最基本方法是select. 它会一直休眠,直到经过一定时间或文件准备好进行 I/O,这为您提供了一种在下一个任务发生之前更新任务列表的方法。如果您不需要中断功能,您可以使用sleep(或usleep)。

于 2012-09-10T02:27:57.773 回答