我想刷新并控制时间间隔的变化。大多数人只有一个无限循环,不断地从time.h轮询时间和浪费周期。有一种方法可以在不打扰太多系统的情况下更换时钟吗?我正在使用c / c ++,并且真的想学习如何仅使用linux库手动执行此操作。大多数程序都需要时间概念。
我希望收到有关系统时钟更新的通知。我正在尝试做一个实时响应的科学应用程序。 Sleep()和类似的事情只允许我指定从执行该州议员开始的时间延迟。来自c标头的Localtime()和字符串返回时间仅给出了执行时的特定时间。如果我使用它这个时间已经太晚了,它已经过了太多纳秒。
答案 0 :(得分:1)
阅读time(7)手册页,了解如何使用系统调用gettimeofday(2),setitimer(2),clock_gettime(2),timer_create(2)等...以及库函数(strftime
,localtime
,...)与时间有关。
如果您想对接收定时器事件的应用程序进行编码,请了解定时器,例如SIGALRM
信号。先阅读signal(7)
但你真的应该阅读,例如Advanced Unix Programming和Advanced Linux Programming并了解syscalls
是什么您可能希望使用poll(2)进行投票或等待。
答案 1 :(得分:0)
可移植且与大多数其他任务兼容的最基本方法是select
。它会一直停留一段时间或文件为I / O做好准备,这样就可以在下一个任务发生之前更新任务列表。如果您不需要中断功能,则可以使用sleep
(或usleep
)。