C 如何使应用程序适应时钟设置时间
应用程序(在linux 2.6.31上运行)使用C 如何使应用程序适应时钟设置时间,c,date,time,posix,usleep,C,Date,Time,Posix,Usleep,应用程序(在linux 2.6.31上运行)使用usleep调用进行调整。但是,它看起来对日期更改没有弹性(从shell使用date,或者从另一个进程使用clock\u settime)。 要避免应用程序被锁定,正确的做法是什么 edit1 假设应用程序希望每100毫秒执行一次操作。作业完成后,它会调用gettimeofday,并推断剩余的ms睡眠时间,直到下一个100ms切片,然后调用usleep。如果您必须确定时间间隔,而不是当前日期/时间,则必须使用此调用: 结构时间间隔 uint64_t
usleep
调用进行调整。但是,它看起来对日期更改没有弹性(从shell使用date
,或者从另一个进程使用clock\u settime
)。
要避免应用程序被锁定,正确的做法是什么
edit1
假设应用程序希望每100毫秒执行一次操作。作业完成后,它会调用gettimeofday,并推断剩余的ms睡眠时间,直到下一个100ms切片,然后调用usleep。如果您必须确定时间间隔,而不是当前日期/时间,则必须使用此调用: 结构时间间隔
uint64_t microsec 时钟获得时间(时钟单调,&tim)
microsec=10000000ull*tim.tv\u sec+tim.tv\u nsec/1000 这是您的系统正常运行时间,真正的完整“硬件”时间(无法修改)
关于定期例程,可以使用alarm()和setitimer()设置定期处理程序。通常如何调用usleep(),即应用程序多久唤醒一次并运行一次?试着解释一下问题是什么,当时钟改变时会出现什么问题?@放松。嗯,我编辑了这个问题。希望它更清楚。