使用Linux中的标准C ++是否可以在系统时间达到指定的日期/时间时获得通知(假设我的过程已经过程)?
我可以将计时器设置为我需要等待的时间,但如果用户更改系统时间会怎样?我是否可以通过系统通知用户更改了系统时间以重置我的计时器?
答案 0 :(得分:4)
Linux内核有这样的系统调用,但它们没有集成到libc API中。 您可以创建一个计时器,从内核获取它的文件描述符,并对描述符进行select或epoll调用,以便在计时器触发时通知。
它的手册页:http://www.kernel.org/doc/man-pages/online/pages/man2/timerfd_create.2.html
答案 1 :(得分:1)
当然,只需编写代码即可完全按照您的意愿行事。例如:您可以保留所有此类计时器的列表,它们应该被触发的日期/时间以及发生时应执行的代码。然后经常你可以检查时间,看看你的计时器是否应该点火。如果是这样,请点击它们,将它们从列表中删除,然后继续开展业务。
答案 2 :(得分:1)
请参阅'at'命令(man at)
的文档例如,at可以在给定时间向您发送电子邮件,例如下午2:35。
at 14:35
warning: commands will be executed using /bin/sh
at> mail -s "It is 2:35 PM" dbadmin < /dev/null
at><EOT> # After CTRL/D pressed.
job 9 at Tue May 8 14:35:00 2012
答案 3 :(得分:-1)
您可以计算从节目开始到活动的时间,并致电
sleep (difftime-1);
然后你可以控制时间是否重置,但这样你只能纠正未来的时间 - 如果时间被设置回来,你就会跳过这个事件。