首页 > 编程语言 >C++获取时间戳 秒、微妙、纳秒

C++获取时间戳 秒、微妙、纳秒

时间:2022-10-16 15:59:47浏览次数:42  
标签:struct int 纳秒 long 微妙 C++ time tv include

转自:https://blog.csdn.net/CAIYUNFREEDOM/article/details/75388111,https://www.runoob.com/w3cnote/cpp-time_t.html

1.例子

#include <iostream>
#include <sys/time.h>
#include <cstdlib>
#include <cstdio>
#include <ctime>
#include <cmath>
#include <unistd.h>

using namespace std;
time_t clocktime()
{

    time_t t = time(NULL);
    std::cout << " s秒级 ----:";
    std::cout << t << endl;

    struct timeval tv;
    gettimeofday(&tv, NULL);
    std::cout << "10e6 微秒级s ----:";
    std::cout << tv.tv_sec << "s," << tv.tv_usec << "微秒" << endl;

    struct timespec tn;

    cout << "----";
    clock_gettime(CLOCK_REALTIME, &tn);

    std::cout << "10e9 纳秒级s ----:";
    std::cout << tn.tv_sec << "s," << tn.tv_nsec << "纳秒" << endl;
}
int main()
{
    clocktime();
    return 0;
}

 输出:

 s秒级 ----:1665905053
10e6 微秒级s ----:1665905053s,19892微秒
----10e9 纳秒级s ----:1665905053s,19906029纳秒

 

2.介绍

2.1 秒级

 秒级直接time(NULL)获取就行,其中time_t类型,time_t 这种类型就是用来存储从1970年到现在经过了多少秒,看了一下宏定义,

#define __SLONGWORD_TYPE    long int

应该就是长整型类型的。

2.2 微秒级

struct timeval
{
    long tv_sec; /*秒*/
    long tv_usec; /*微秒*/
};

结构体struct timeval,它精确到微妙。

https://blog.csdn.net/CV_Jason/article/details/85244813,其中,long int即long,它和int一样,只有32位。在实际的使用中,long与int几乎没有区别。long long则不同,long long是C++的64位整型的基本类型。long 和int只是因为早期C编译器格式的问题。

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

返回当前距离1970年的秒数和微妙数,后面的tz是时区,一般不用。

2.3 纳秒

https://www.cnblogs.com/book-gary/p/3716790.html

struct timespec
  {
    __time_t tv_sec;        /* Seconds.  */
    __syscall_slong_t tv_nsec;    /* Nanoseconds.  */
  };

一般由函数int clock_gettime(clockid_t, struct timespec *)获取特定时钟的时间,CLOCK_REALTIME 统当前时间,从1970年1.1日算起。

 

标签:struct,int,纳秒,long,微妙,C++,time,tv,include
From: https://www.cnblogs.com/BlueBlueSea/p/16796317.html

相关文章

  • C++设计模式
    简单工厂模式简单工厂模式就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。不需要管它内部的具体实现,只要告诉它你的需求即可,就可以在不同条件下创建不同实例......
  • C++学生管理系统
    C++学生管理系统学生管理系统:1.设计要求角色划分:管理员、老师、学生。登录管理:根据用户名、密码、用户类型进行登录验证,登录后可以修改密码。档案管理:实现对用户个人......
  • c++入门
    一共包含三个部分:1-c++基础语法;2-c++核心编程;3-c++提高编程准备阶段:visualstudio:创建项目:创建新项目->visualC++->空项目->名称(自定义)......
  • 入门C++
    前言对于奥赛而言,入门C++,可以从写出一个能输出hello,world!的程序开始,在本文中,主要介绍如何从0开始编写一个简单的程序。编译器要想编写出一个能正常运行的程序,你需......
  • C++补丁
    目录文件in/out文件in/out读取数组整行读取字符串......
  • C++ 实现随机数生成(Windows、Linux)
    1、简介计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意:小M多项式序列的周期是65535,即每次利用一个随机种子生......
  • 第4章 C++ STL无序关联式容器总结
    除了序列式容器和关联式容器之外,C++11标准库又引入了一类容器,即无序关联式容器。 无序关联式容器,又称哈希容器。和关联式容器一样,此类容器存储的也是键值对元素;不同之......
  • 掌握C++的左值引用和初识右值引用
    一、引用和指针的区别?1、左值引用和右值引用2、引用的实例 1、引用是更安全的指针(1)安全性:引用是必须初始化的,指针可以不初始化。 引用能够保证一定能够引用到一个......
  • C++内存泄漏
        程序在堆中申请的动态内存,在程序使用完成时没有得到及时的释放。当这些变量的生命周期已结束时,该变量在堆中所占用的内存未能得到释放,从而就导致了堆中可使用的......
  • C++大端与小端
    字节序:字节顺序又称端序或尾序(Endianness),在计算机科学领域中,指电脑内存中或在数字通信链路中,组成多字节的字的字节的排列顺序。在几乎所有的机器上,多字节对象都被存储为连......