【问题标题】:Pass settimeofday() epoch time?通过 settimeofday() 纪元时间?
【发布时间】:2011-03-23 10:12:49
【问题描述】:

是否可以在 C 中传递 settimeofday() 我的 time_t/epoch 时间值?谁能给我一个例子来说明我是怎么做到的……我的 C 技能有点生疏:S

会是:

time_t time = somevalue;
settimeofday(somevalue, NULL);

我在工作的地方没有管理员访问权限,因此无法对其进行测试。

提前致谢!

【问题讨论】:

    标签: c epoch


    【解决方案1】:

    settimeofday() 将struct timeval * 作为第一个参数,所以你应该这样做

    struct timeval tv;
    
    tv.tv_sec = somevalue;
    tv.tv_usec = 0;
    
    settimeofday(&tv,NULL);
    

    后续编辑 gettimeofday() 是对应的:

    struct timeval tv;
    
    if ( !gettimeofday(&tv,NULL) ) // *always* check return values ;-)
    {
        long long microsince1970;
        microsince1970 = tv.tv_sec*1000000 + tv.tv_usec;
        printf("it's been %lld µs ago\n",microsince1970);
    }
    

    【讨论】:

    • 哦,亲爱的,这行得通。非常感谢!快速跟进问题,是否可以使用 gettimeofday() 以毫秒为单位获取 time_t 对象,有点像 time(Null) 如何以秒为单位返回 time_t 对象。
    • 给你,time() 和 µs。除以 1000 得到 ms。
    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 2013-04-24
    • 2023-03-27
    • 2012-01-30
    • 2019-03-07
    • 2015-08-08
    相关资源
    最近更新 更多