在没有民意调查的情况下改变时间

时间:2012-09-10 01:35:53

标签: c++ c linux time

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

我希望收到有关系统时钟更新的通知。我正在尝试做一个实时响应的科学应用程序。 Sleep()和类似的事情只允许我指定从执行该州议员开始的时间延迟。来自c标头的Localtime()和字符串返回时间仅给出了执行时的特定时间。如果我使用它这个时间已经太晚了,它已经过了太多纳秒。

2 个答案:

答案 0 :(得分:1)

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

如果您想对接收定时器事件的应用程序进行编码,请了解定时器,例如SIGALRM信号。先阅读signal(7)

但你真的应该阅读,例如Advanced Unix ProgrammingAdvanced Linux Programming并了解syscalls

是什么

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

答案 1 :(得分:0)

可移植且与大多数其他任务兼容的最基本方法是select。它会一直停留一段时间或文件为I / O做好准备,这样就可以在下一个任务发生之前更新任务列表。如果您不需要中断功能,则可以使用sleep(或usleep)。