getitimer函数

 1 #include<stdio.h>
 2 #include<time.h>
 3 #include<sys/time.h>
 4 #include<unistd.h>
 5 #include<stdio.h>
 6 #include<time.h>
 7 #include<sys/time.h>
 8 #include<unistd.h>
 9 #include<signal.h>
10 #include<stdlib.h>
11 static void ElsfTimer(int signo )
12 {
13         struct timeval tp;
14         struct tm *tm;
15         gettimeofday(&tp,NULL);
16         tm=localtime(&tp.tv_sec);
17         printf("Sec=%ld\t",tp.tv_sec);
18         printf("Usec=%ld\t",tp.tv_usec);
19         printf("%d-%d-%d %d:%d:%d\n",tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec);
20 }
21
22
23 static void InitTime(int tv_sec,int tv_usec)
24 {
25         struct itimerval value;
26
27         signal(SIGALRM,ElsfTimer);//注册SIGALRM函数
28         value.it_value.tv_sec=tv_sec;
29         value.it_value.tv_usec=tv_usec;
30         value.it_interval.tv_sec=tv_sec;
31         value.it_interval.tv_usec=tv_usec;
32         setitimer(ITIMER_REAL,&value,NULL);
33 }
34
35 int main()
36 {37         InitTime(5,0);   //设置setitimer的参数
38         struct itimerval ip;
39         getitimer(ITIMER_REAL,&ip);//获取计时器的设置
40         printf("%ld,%ld\n",ip.it_value.tv_sec,ip.it_value.tv_usec);//打印计时器的设置
41         while(1)
42         {
43                 printf("Sleeping ++\n");
44                 sleep(1);
45         }
46         exit(0);
47 }

程序运行结果如下:

 1 4,999996     //gettitimer获取到的计时器配置        与实际值5s还是有偏差的,说明函数处理计时也不是完全标准!
 2 Sleeping ++
 3 Sleeping ++
 4 Sleeping ++
 5 Sleeping ++
 6 Sleeping ++
 7 Sec=1454660611    Usec=533770    2016-2-5 16:23:31
 8 Sleeping ++
 9 Sleeping ++
10 Sleeping ++
11 Sleeping ++
12 Sleeping ++
13 Sec=1454660616    Usec=534003    2016-2-5 16:23:36
14 Sleeping ++
15 Sleeping ++
16 Sleeping ++
17 Sleeping ++
18 Sleeping ++
19 Sec=1454660621    Usec=533200    2016-2-5 16:23:41
20 Sleeping ++
21 Sleeping ++
22 ^C

可以看到每5s中断函数执行一次

时间: 2024-08-01 02:15:04

getitimer函数的相关文章

Linux时间子系统(三) 用户空间接口函数

一.前言 从应用程序的角度看,内核需要提供的和时间相关的服务有三种: 1.和系统时间相关的服务.例如,在向数据库写入一条记录的时候,需要记录操作时间(何年何月何日何时). 2.让进程睡眠一段时间 3.和timer相关的服务.在一段指定的时间过去后,kernel要alert用户进程 本文主要描述和时间子系统相关的用户空间接口函数知识. 二.和系统时间相关的服务 1.秒级别的时间函数:time和stime time和stime函数的定义如下: #include <time.h> time_t ti

Unix环境编程之定时、信号与中断

在linux下实现精度较高的定时功能,需要用到setitimer 和 getitimer函数. 函数原型: #include <sys/time.h> int getitimer(int which, struct itimerval *curr_value); int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value); · 函数getitimer()把指定的定时器类型( I

linux 操作系统下c语言编程入门

2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux程序设计入门--网络编程 9)Linux下C开发工具介绍 1)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编

4)linux程序设计入门--时间概念

4)程序设计入门--时间概念 前言:Linux下的时间概念 这一章我们学习Linux的时间表示和计算函数 时间的表示 时间的测量 计时器的使用 1.时间表示 在程序当中,我们经常要输出系统当前的时间,比如我们使用date命令 的输出结果.这个时候我们可以使用下面两个函数 #include <time.h>; time_t time(time_t *tloc); char *ctime(const time_t *clock); time函数返回从1970年1月1日0点以来的秒数.存储在time

浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程【转】

本文转载自:http://www.cnblogs.com/qingchen1984/p/7007631.html 本篇文章主要介绍了"浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程",主要涉及到浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程方面的内容,对于浅析 Linux 中的时间编程和实现原理一—— Linux 应用层的时间编程感兴趣的同学可以参考一下. 简介: 本文试图完整地描述 Linux 系统中 C 语言编程中的时间问

time函数进一步

time进一步 gettimeofday #include <sys/time.h> struct timeval{ long tv_sec; long tv_usec; }; int gettimeofday(struct timeval *tv, struct timezone *tz); gettimeofday将时间保存在tv中,tz一般使用NULL代替. 通过不同时间段运行函数可测量时间. setitimer&getitimer #include <sys/time.h

unix/linux c函数接口大全

/*这个函数可以将errno直接转换为可读的错误形式*/ (1).char* strerror(int errnum) /*这个函数将直接打印出errno当前值所对应的错误信息打印出来,参数可以指定一个字符串,函数将这个字符串显示在错误信息前面*/ (2).void perror(const char* msg) /*这个函数可以用来获取主机名*/ (3).int gethostname(char* name,size_t size) /*这个函数可以设置主机名*/ (4).int sethos

Linux操作系统中的系统调用接口函数

在分析病毒样本时发现有些系统函数是必用,有些超常用,现在都列出来,希望和大家交流 转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢 进程控制 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 中止进程 _exit 立即中止当前进程 getdtablesize 进程所能打开的最大文件数 getpgid 获取指定进程组标识号 setpgid 设置指定进程组标志号 getpgrp 获取当前进程组

linux 时间函数

linux 时间函数: time/time_t  秒 ftime/ struct timeb 毫秒 gettimeofday/struct timeval us clock_gettime/ struct timespec ns gmtime/localtime/timegm/mktime/strftime/struct tm 其中 time 精度低, ftime 已废弃, clock_gettime 系统调用,精度高 gettimeofday  vsyscall ,系统态, 开销低 定时函数,