注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 科普系列之-使用Windows的..
 帮助

Linux上glibc的man手册关于timeval结构解释的错误


2006-03-11 20:02:35
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。
这个问题不止遇见了一次了,但是总是懒得记录下来,所以每次碰到总是要写个test代码去测试一下。

问题如下:
在debian linux的man页中对gettimeofday函数的说明中,有这样一个说明:

DESCRIPTION
    The functions gettimeofday and settimeofday can get and set the time as
    well as a timezone. The tv argument is a timeval struct, as specified
    in <sys/time.h>:

    struct timeval {
          time_t       tv_sec;     /* seconds */
          suseconds_t   tv_usec; /* microseconds */
    };

其中对tv_usec的说明为时间的毫秒部分。 而在实际中,该函数以及Linux内核返回的timeval
类型的时间值,tv_usec代表的是微秒精度(10的-6次方秒)。

测试代码如下:

#include <stdio.h>
#include <sys/time.h>
#include <time.h>

    int gettimeofday(struct timeval *tv, struct timezone *tz);



int main(int argc,char * argv[]){

    struct timeval tv;
    while(1){
          gettimeofday(&tv,NULL);
          printf("time %u:%u\n",tv.tv_sec,tv.tv_usec);
          sleep(2);

    }
    return 0;

}


返回结果为:

evil@dcenter:~/tmp$ ./a.out
time 1142077839:903605
time 1142077841:910129
time 1142077843:920155
time 1142077845:930180
time 1142077847:940205
time 1142077849:950231
time 1142077851:960256
time 1142077853:970280
time 1142077855:980307
time 1142077857:990331

本文出自 “Nathan的技术空间” 博客,转载请与作者联系!





    文章评论
 
2008-05-27 11:11:55
解释并没有错误,是你理解错了。
microsecond的英文解释是:one millionth of a second ,中文含义为:一百万分之一秒,也就是微秒
英文中的毫秒是:millisecond

2008-07-30 13:46:28
这文章居然被四处转载。。。
英文不过关啊
就象楼上说的 micro和 milli 的区别

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: