【C语言】clock_gettime函数的使用

本文首发于 ❄️慕雪的寒舍

函数的基本信息如下

  • 其中第一个参数是配置你想获取什么类型的时间
  • 第二个参数是一个输出型参数,会将当前时间存放到一个结构体里面给你返回。
  • 返回值标识是否获取成功
c 复制代码
//头文件
#include <time.h>

//函数原型
int clock_gettime( clockid_t clock_id,struct timespec * tp );

// timespec 结构体
struct timespec { 
    __time_t tv_sec; /* 秒 */ 
    __syscall_s long_t tv_nsec; /* 纳秒 */
};

第一个参数有下面几种选项

复制代码
CLOCK_REALTIME: 是指系统时间,随着系统时间的改变而改变。系统时钟会被用户而改变。并非不变的时间戳。
CLOCK_MONOTONIC: 指从系统启动时开始计时。不受系统设置影响,也不会被用户改变。
CLOCK_PROCESS_CPUTIME_ID: 指这个进程运行到当前代码时,CPU花费的时间。
CLOCK_THREAD_CPUTIME_ID: 指这个线程运行到当前代码时,CPU花费的时间。

使用例子

c 复制代码
#include<stdio.h>
#include<time.h>

int main(){
    struct timespec now;

    clock_gettime(CLOCK_MONOTONIC,&now);

    printf("Seconds = %ld \t Nanoseconds = %ld\n",, now.tv_sec, now.tv_nsec);

    return 0;
}

输出结果

复制代码
Seconds = 29642          Nanoseconds = 751516090
相关推荐
d111111111d2 分钟前
C语言中,malloc和free是什么,在STM32中使用限制是什么,该如何使用?
c语言·开发语言·笔记·stm32·单片机·嵌入式硬件·学习
网安_秋刀鱼5 分钟前
【java安全】shiro鉴权绕过
java·开发语言·安全
李白同学10 分钟前
Linux:调试器-gdb/cgdb使用
linux·服务器·c语言·c++
白昼流星!12 分钟前
C++内存四区与new操作符详解
开发语言·c++
tyatyatya12 分钟前
MATLAB三维绘图教程:plot3/mesh/surf/contour函数详解与实例
开发语言·matlab
十五年专注C++开发13 分钟前
标准C++操作文件方法总结
开发语言·c++·文件操作·ifstream
浔川python社20 分钟前
《C++ 小程序编写系列》(第四部):实战:简易图书管理系统(类与对象篇)
java·开发语言·apache
浔川python社24 分钟前
《C++ 小程序编写系列》(第五部):实战:多角色图书管理系统(继承与多态篇)
开发语言·c++
CC.GG40 分钟前
【Qt】信号和槽
开发语言·数据库·qt
是席木木啊40 分钟前
基于MinIO Java SDK实现ZIP文件上传的方案与实践
java·开发语言