linux 系统定时器的一些用法
2015-07-21 16:29
232 查看
{
if( true == bSYNTime )
{
unsigned int currentTime;
unsigned int firstAlarm;
struct itimerval iTimer;
struct sigaction SigAction;
//设置信号处理函数
SigAction.sa_handler = ReviseSystemTime;
//定时器处理函数
SigAction.sa_flags = 0;
sigemptyset(&SigAction.sa_mask);
sigaction(SIGALRM, &SigAction, NULL);
//设置间隔计时器
currentTime = ( GetCurrTime() / 1000000 );
firstAlarm = GetZeroTime32OfDate( currentTime + DAYINSECOND ) - currentTime;
#if 1
//printf("%s:%s:%d, the first time sys will hapen after %d second\n", __FUNCTION__, __FILE__, __LINE__, firstAlarm);
iTimer.it_value.tv_sec = firstAlarm;
iTimer.it_value.tv_usec = 0;
iTimer.it_interval.tv_sec = WEAKINSECOND;
iTimer.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &iTimer,NULL);
#else
iTimer.it_value.tv_sec = FIVEMIN;
iTimer.it_value.tv_usec = 0;
iTimer.it_interval.tv_sec = TENMIN;
iTimer.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &iTimer,NULL);
#endif
}
else
{
//printf("%s:%s:%d, stop to syn to the ntp server\n", __FUNCTION__, __FILE__, __LINE__);
sigaction(SIGALRM, NULL, NULL);
setitimer(ITIMER_REAL,NULL, NULL);
}
}
//itimerval结构中的it_value是减少的时间,当这个值为0的时候就发出相应的信号了. 然后再将it_value设置为it_interval值.
void CTZoneDZoneCfg::ReviseSystemTime(int sigNum)
{
// printf("%s:%s:%d, get the alarm signal %d\n", __FUNCTION__, __FILE__, __LINE__, sigNum);
}
if( true == bSYNTime )
{
unsigned int currentTime;
unsigned int firstAlarm;
struct itimerval iTimer;
struct sigaction SigAction;
//设置信号处理函数
SigAction.sa_handler = ReviseSystemTime;
//定时器处理函数
SigAction.sa_flags = 0;
sigemptyset(&SigAction.sa_mask);
sigaction(SIGALRM, &SigAction, NULL);
//设置间隔计时器
currentTime = ( GetCurrTime() / 1000000 );
firstAlarm = GetZeroTime32OfDate( currentTime + DAYINSECOND ) - currentTime;
#if 1
//printf("%s:%s:%d, the first time sys will hapen after %d second\n", __FUNCTION__, __FILE__, __LINE__, firstAlarm);
iTimer.it_value.tv_sec = firstAlarm;
iTimer.it_value.tv_usec = 0;
iTimer.it_interval.tv_sec = WEAKINSECOND;
iTimer.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &iTimer,NULL);
#else
iTimer.it_value.tv_sec = FIVEMIN;
iTimer.it_value.tv_usec = 0;
iTimer.it_interval.tv_sec = TENMIN;
iTimer.it_interval.tv_usec = 0;
setitimer(ITIMER_REAL, &iTimer,NULL);
#endif
}
else
{
//printf("%s:%s:%d, stop to syn to the ntp server\n", __FUNCTION__, __FILE__, __LINE__);
sigaction(SIGALRM, NULL, NULL);
setitimer(ITIMER_REAL,NULL, NULL);
}
}
//itimerval结构中的it_value是减少的时间,当这个值为0的时候就发出相应的信号了. 然后再将it_value设置为it_interval值.
void CTZoneDZoneCfg::ReviseSystemTime(int sigNum)
{
// printf("%s:%s:%d, get the alarm signal %d\n", __FUNCTION__, __FILE__, __LINE__, sigNum);
}
相关文章推荐
- 理解 Linux 的硬链接与软链接
- 【Linux】将终端的命令输出保存为txt文本文件
- Linux信号列表
- Linux共享windown文件
- linux学习——安装jdk配置环境变量
- Linux/UNIX下 ssh-keygen 设置SSH无密码登录
- CentOS利用LVM实现磁盘弹性扩容
- 诡异的Linux磁盘空间被莫名其妙占用问题
- libzdb简介
- Linux 32位系统中的一些时间转换
- Linux umount的device is busy问题
- linux grep命令
- 嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解(二)
- 嵌入式Linux之我行——S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一)
- Linux内核进程管理
- 你应该知道的16个Linux服务器监控命令
- phoenixframe自动化平台在Linux环境下执行用例的说明
- CentOS 7.0关闭默认防火墙firewalld,使用iptables
- linux下导入、导出mysql数据库命令
- Linux基础