linux下获得时间差,精确到微秒级别

来源:互联网 发布:作息时间表软件 编辑:程序博客网 时间:2024/06/05 17:44
 


最近需要测算软件计算FFT所需要的时间,所收集参考的资料:


#include   <stdio.h>  
  #include   <stdlib.h>                                                 /*   包含标准库头文件   */  
  #include   <sys/time.h>  
   
  int   main(int   argc,   char   **argv)  
  {  
  struct   timeval   start,stop,diff;  
  gettimeofday(&start,0);  
                    //做你要做的事...  
  gettimeofday(&stop,0);  
  timeval_subtract(&diff,&start,&stop);  
                    printf("总计用时:%d 微秒\n",diff.tv_usec);  
  }                    
   
  /**  
      *   计算两个时间的间隔,得到时间差  
      *   @param   struct   timeval*   resule   返回计算出来的时间  
      *   @param   struct   timeval*   x             需要计算的前一个时间  
      *   @param   struct   timeval*   y             需要计算的后一个时间  
      *   return   -1   failure   ,0   success  
  **/  
  int   timeval_subtract(struct   timeval*   result,   struct   timeval*   x,   struct   timeval*   y)  
  {  
        int   nsec;  
   
        if   (   x->tv_sec>y->tv_sec   )  
                  return   -1;  
   
        if   (   (x->tv_sec==y->tv_sec)   &&   (x->tv_usec>y->tv_usec)   )  
                  return   -1;  
   
        result->tv_sec   =   (   y->tv_sec-x->tv_sec   );  
        result->tv_usec   =   (   y->tv_usec-x->tv_usec   );  
   
        if   (result->tv_usec<0)  
        {  
                  result->tv_sec--;  
                  result->tv_usec+=1000000;  
        }  
   
        return   0;  
  }  
   

--------------------------------------------------
#include   <sys/time.h>  
  #include   <unistd.h>  
  int   gettimeofday(struct   timeval   *tv,struct   timezone   *tz);  
  功能:将目前的时间以tv所指的结构返回。  
  struct   timeval{  
          long   tv_sec;//秒  
          long   tv_usec;//微秒  
  };  
  将其中的tv_usec转换到毫秒即可。  
  timezone结构自己查吧



附录:
-------------------------------------------------
Linux下获得系统时间的C语言的实现方法  
  #include<time.h>     //C语言的头文件  
  #include<stdio.h>     //C语言的I/O  
   
  void   main()  
  {  
  time_t   now;         //实例化time_t结构  
  struct   tm     *timenow;         //实例化tm结构指针  
  time(&now);  
  //time函数读取现在的时间(国际标准时间非北京时间),然后传值给now  
   
  timenow   =   localtime(&now);  
  //localtime函数把从time取得的时间now换算成你电脑中的时间(就是你设置的地区)  
   
  printf("Local   time   is   %s\n",asctime(timenow));  
  //上句中asctime函数把时间转换成字符,通过printf()函数输出  
  }  
   
  注释:time_t是一个在time.h中定义好的结构体。而tm结构体的原形如下:  
   
  struct   tm  
  {  
      int   tm_sec;//seconds   0-61  
      int   tm_min;//minutes   1-59  
      int   tm_hour;//hours   0-23  
      int   tm_mday;//day   of   the   month   1-31  
      int   tm_mon;//months   since   jan   0-11  
      int   tm_year;//years   from   1900  
      int   tm_wday;//days   since   Sunday,   0-6  
      int   tm_yday;//days   since   Jan   1,   0-365  
      int   tm_isdst;//Daylight   Saving   time   indicator  
  };  

 

 

http://szfzafa.blog.163.com/blog/static/11895416720125264621443/

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 娃儿感冒了很咳怎么办 5岁娃儿经常感冒发烧怎么办 娃儿冷得发抖感冒怎么办 吃羊肉和茶后怎么办 宝宝胆汁酸高22怎么办 5个月发烧38度怎么办 28个月宝宝不愿把尿怎么办 16个月宝宝咳嗽怎么办 宝宝晚上不用纸尿裤要尿床怎么办 宝宝头型睡偏了怎么办 初生婴儿鼻子被奶块堵住怎么办 月经排的不顺畅怎么办 四个月的小孩拉肚子怎么办 月经期做了水光怎么办 4个多月的宝宝拉肚子怎么办 2个月婴儿积食怎么办 3个月婴儿积食怎么办 2个月的婴儿干呕怎么办 脚上的皮烂了怎么办 嘴皮里面烂了怎么办 未满月婴儿拉屎很费劲怎么办 新生儿血钙1.7怎么办啊 3个月宝宝胃口小怎么办 3个月宝宝缺钙怎么办 五个月宝宝吃手睡觉怎么办 2个月宝宝有蛲虫怎么办 四个月婴儿漏屎怎么办 母乳喂养6个月才11斤怎么办 过期的果泥肉泥怎么办? 孩子被开水烫了怎么办 小儿喝开水烫了怎么办 小孩不识字怎么办17-18 3岁宝宝不识数字怎么办 小孩数字写反了怎么办 3岁宝宝乱啃东西怎么办 闹钟的指针松了怎么办 手机想让它横屏怎么办 教孩子写作业头都被气炸了怎么办 2岁宝宝大小脸怎么办 宝宝2岁半不认识颜色怎么办 宝宝11个多月突然排斥妈妈怎么办