文档章节

Linux 下c获取当前时间戳(精确到秒和毫秒或者微秒或者纳秒)

独钓渔
 独钓渔
发布于 2017/07/26 00:39
字数 216
阅读 962
收藏 3

t.c源码:

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

int main(){
    struct timeval tv;
    gettimeofday(&tv,NULL);
    printf("second:%ld\n",tv.tv_sec);  //秒
    printf("millisecond:%ld\n",tv.tv_sec*1000 + tv.tv_usec/1000);  //毫秒
    printf("microsecond:%ld\n",tv.tv_sec*1000000 + tv.tv_usec);  //微秒

    sleep(3); // 为方便观看,让程序睡三秒后对比
    printf("------------------------------\n");
    gettimeofday(&tv,NULL);
    printf("second:%ld\n",tv.tv_sec);  //秒
    printf("millisecond:%ld\n",tv.tv_sec*1000 + tv.tv_usec/1000);  //毫秒
    printf("microsecond:%ld\n",tv.tv_sec*1000000 + tv.tv_usec);  //微秒
    return 0;
}

运行:

$ ./t 
second:1501000012
millisecond:1501000012738
microsecond:1501000012738594
------------------------------
second:1501000015
millisecond:1501000015738
microsecond:1501000015738717

 

--- 获取纳秒级别的 ---

t1.c源码:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
    struct timespec time_start={0, 0},time_end={0, 0};
    clock_gettime(CLOCK_REALTIME, &time_start);
    printf("start time %llus,%llu ns\n", time_start.tv_sec, time_start.tv_nsec);
    clock_gettime(CLOCK_REALTIME, &time_end);
    printf("endtime %llus,%llu ns\n", time_end.tv_sec, time_end.tv_nsec);
    printf("duration:%llus %lluns\n", time_end.tv_sec-time_start.tv_sec, time_end.tv_nsec-time_start.tv_nsec);
    return 0;
}

编译:

gcc -o t1 t1.c -lrt

运行:

$ ./t1 
start time 1501001451s,320841750 ns
endtime 1501001451s,320881827 ns
duration:0s 40077ns

 

© 著作权归作者所有

共有 人打赏支持
独钓渔
粉丝 48
博文 385
码字总数 148158
作品 0
沙坪坝
系统管理员
私信 提问
linux时间相关结构体和函数整理【转载】

转载LYJ:http://blog.chinaunix.net/space.php?uid=14617649&do=blog&id=3058661 一、时间类型。Linux下常用的时间类型有4个:time_t,struct timeb, struct timeval,struct timespec,clo......

晨曦之光
2012/06/07
148
0
C语言获取SYSTEMTIME

C语言中如何获取时间?精度如何?1 使用timet time( timet timer ) 精确到秒2 使用clockt clock() 得到的是CPU时间精确到1/CLOCKSPERSEC秒3 计算时间差使用double difftime( timet timer1,t...

二胡艺
2014/03/24
0
0
System.currentTimeMillis()计算方式与时间的单位转换

一、时间的单位转换 1秒=1000毫秒(ms) 1毫秒=1/1,000秒(s) 1秒=1,000,000 微秒(μs) 1微秒=1/1,000,000秒(s) 1秒=1,000,000,000 纳秒(ns) 1纳秒=1/1,000,000,000秒(s) 1秒=1,000,000,000,...

谢思华
2013/12/12
0
0
java的System.currentTimeMillis()和System.nanoTime...

纳秒   ns(nanosecond):纳秒,时间单位。一秒的10亿分之一,即等于10的负9次方秒。常用作内存读写速度的单位,其前面数字越小则表示速度越快。   1纳秒=1000皮秒    1纳秒 =0.001...

文星
2012/09/27
0
0
C语言中常用计时方法总结

转载 http://blog.csdn.net/fzywj/article/details/8109368 C语言中常用计时方法总结 1. time() 头文件:time.h 函数原型:timet time(timet * timer) 功能:返回以格林尼治时间(GMT)为标准...

kcyyc007
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rabbitmq

灰暗
22分钟前
0
0
Flink

flink HA部署 flink搭建,采用分布式部署方式,分别为A,B,C三个节点。其中A为master;A,B,C为worker。 本文使用的用户是hadoop用户(自己新建) 先决条件 Java 1.8.x or higher scala 自己使用...

-九天-
49分钟前
1
0
数据中台和传统数仓的区别

中台系统把业务层同性的算法能力,服务能力,业务能力高度集成,有效组织 ,动态规划。更好的帮助上层业务。 今天就让我们看看关于数据中台的问答吧。 1 Q : 什么是数据中台? A : 数据中台是...

hblt-j
51分钟前
4
0
Java在什么时候会出现内存泄漏

在Java中,内存泄漏就是存在一些被分配的对象,这些对象有下面两个特点,首先,这些对象是可达的,即在有向图中,存在通路可以与其相连;其次,这些对象是无用的,即程序以后不会再使用这些对...

群星纪元
54分钟前
2
0
android 打开摄像头

private SurfaceHolder mHolder; private SurfaceView mSurfaceView; private Camera mCamera; mSurfaceView = (SurfaceView) this.findViewById(R.id.camsurfaceView1); mHolder = mSurface......

jingshishengxu
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部