Linux下clock_gettime函数详解

article/2025/10/21 12:18:28

要包含这头文件<time.h>

且在编译链接时需加上 -lrt ;因为在librt中实现了clock_gettime函数。

---

struct timespec ts;

clock_gettime(CLOCK_MONOTONIC,ts);

printf("%d %d",ts.tv_sec, ts.tv_nsec);打印出来的时间跟 cat /proc/uptime第一个参数一样

/proc/uptime里面的两个数字分别表示: 
the uptime of the system (seconds), and the amount of time spent inidle process (seconds).

把第一个数读出来,那就是从系统启动至今的时间,单位是秒

 

Middleware对POSIX提供的标准计时器API进行封装,主要提供了两种类型的时钟的封装。一种是CLOCK_REALTIME,另一种是CLOCK_MONOTONIC。对与man手册的解释是:
CLOCK_REALTIME: Systemwide realtime clock. 系统范围内的实时时钟。
CLOCK_MONOTONIC:Represents monotonic time. Cannot be set.表示单调时间,不能被设置的。

手册中解释的比较笼统。我个人的理解是:
CLOCK_REALTIME:这种类型的时钟可以反映wall clocktime,用的是绝对时间,当系统的时钟源被改变,或者系统管理员重置了系统时间之后,这种类型的时钟可以
得到相应的调整,也就是说,系统时间影响这种类型的timer。
CLOCK_MONOTONIC:用的是相对时间,他的时间是通过jiffies值来计算的。该时钟不受系统时钟源的影响,只受jiffies值的影响。

建议使用:
CLOCK_MONOTONIC这种时钟更加稳定,不受系统时钟的影响。如果想反映wall clocktime,就使用CLOCK_REALTIME。

 

clock_gettime比gettimeofday更加精确


clock_gettime( )提供了纳秒的精确度,给程序计时可是不错哦; 

 

 

 



函数的原型如下:

int clock_gettime(clockid_t clk_id, struct timespect * tp);

clockid_t clk_id用于指定计时时钟的类型,对于我们Programmr以下三种比较常用:

CLOCK_REALTIME, a system-wide realtime clock.
CLOCK_PROCESS_CPUTIME_ID, high-resolution timer provided by the CPUfor each process.
CLOCK_THREAD_CPUTIME_ID, high-resolution timer provided by the CPUfor each of the threads.
CLOCK_REALTIME,a system-wide realtime clock.
CLOCK_PROCESS_CPUTIME_ID, high-resolution timer providedby the CPU for each process.
CLOCK_THREAD_CPUTIME_ID, high-resolution timer provided bythe CPU for each of the threads.
struct timespect *tp用来存储当前的时间,其结构如下:
1 struct timespec {
2time_t tv_sec;
3long tv_nsec;
4};

呵呵,好啦!该讲的都刚清楚了,下面我们就上代码把;

转:Linux <wbr>下使用clock_gettime详解代码
1 #include < iostream >
2 #include < time.h >
3   using namespace std;
4
5 timespec diff(timespec start, timespec end);
6
7   int main()
8 {
9 timespec time1, time2;
10 int temp;
11 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, & time1);
12 for ( int i = 0 ;i < 242000000 ;i ++ )
13 temp += temp;
14 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, & time2);
15 cout << diff(time1,time2).tv_sec << " : " << diff(time1,time2).tv_nsec << endl;
16 return 0 ;
17 }
18
19 timespec diff(timespec start, timespec end)
20 {
21 timespec temp;
22 if ((end.tv_nsec - start.tv_nsec) < 0 ){
23 temp.tv_sec = end.tv_sec - start.tv_sec - 1 ;
24 temp.tv_nsec = 1000000000 + end.tv_nsec - start.tv_nsec;
25 } else {
26 temp.tv_sec = end.tv_sec - start.tv_sec;
27 temp.tv_nsec = end.tv_nsec - start.tv_nsec;
28 }
29 return temp;
30 }

http://chatgpt.dhexx.cn/article/aZA4nhP7.shtml

相关文章

Gettimeofday的用法

先看gettimeofday的语法定义&#xff1a; 使用前先包含头文件#include<sys/time.h> 第一个参数&#xff1a;是个timeval *类型的结构体&#xff0c;该结构体如下 timeval.tv_sec 就是秒呗 timeval.tv_usec 就是微秒 一般我们使用gettimeofday是用来…

Java中Date类中getTime()方法

public long getTime() 返回自1970年1月1日以来&#xff0c;由 Date对象表示的00:00:00 GMT的毫秒 数 。 结果 自1970年1月1日以来&#xff0c;以此日期为准的00:00:00 GMT的毫秒数。 这是JDK文档中对于getTime()方法的官方解读 在我实际使用中发现这个方法可以解决日期月日输…

PPT插入视频

最近需要在PPT中插入一段视频&#xff0c;但是发现在插入的时候并不是一帆风顺&#xff0c;所以在这里做一下记录。 1、可能出现如下的提示 2、解决的办法 在OFFICE2010中插入视屏和音频文件时, 注意应确认是微软的格式, 即wmv及wma格式, 否则即使插入后, 在插入时也可能出现…

怎么将PPT中的视频文件保存下来

先右键包含视频的PPT文件&#xff0c;选择‘打开方式’&#xff0c;打开方式的子菜单栏中有一个选择其他应用。 因为我之前操作过&#xff0c;所以会显示那个WinRAR的应用程序&#xff0c;第一个使用的话一般不会出现&#xff0c;点击‘更多应用’&#xff0c;找到‘在这台电脑…

如何在PPT中自动同时播放两个视频

嵌入视频 视频工具中选择自动播放 动画中第二个视频选择和上一动画同时

从视频中提取图片(截取ppt)

从视频中提取图片 大聪明2.0上线 本文将介绍如何快速从网课视频中提取ppt Step1 从视频中提取图片 使用win自带的“电影与电视” 点击这个小铅笔&#xff0c;选择“保存视频中的照片” 在弹出的新窗口内就可以将视频按一帧一帧的照片展示出来&#xff0c;对想要保存的照片点击…

PPt插入视频同时播放

1.导入需要的三个视频 2.对每个视频在 动画 里面设置为 播放 3.选择第一个视频的 4.其他的视频设置为

wps——ppt中的视频提取

在写小丸工具箱时我已经删除了自己录的视频&#xff0c;只有ppt中有存稿&#xff0c;在查阅后成功的提取视频文件。这里要骂骂骂wps没有媒体视频另存为的选项要不然也不需要在ppt外部进行处理。&#xff08;如果是我没有找到&#xff0c;那烦请提醒我这个选项在那里&#xff0c…

如何使用计算机讲解ppt,如何录制PPT讲解视频?

录制PPT视频方式推荐 如何在电脑上录制PPT视频&#xff1f;本文介绍了三种方案&#xff0c;让你轻松将幻灯片录制为视频。 Microsoft PowerPoint 微软Office自带录制幻灯片功能&#xff0c;需要注意的是Office 2007版本没有此功能&#xff0c;可以先升级到高版本的Office&#…

PPT幻灯片放映时不显示视频(旁白)

问题&#xff1a;PPT录制的视频在非放映的时候可以播放&#xff0c;但是进入幻灯片放映模式就不显示。 解决方法&#xff1a;幻灯片放映 → \rightarrow → 播放旁白 勾选上。

PPT制作相册视频

目标&#xff1a;使用免费工具将图片快速转为视频&#xff0c;实现视频上传抖音、微视频。 工具 PowerPoint 2019等新版本格式工厂 PPT制作 制作一个自动播放的PPT 打开PPT插入相册&#xff1a;插入->相册。插入照片用于制作电子相册动画设置&#xff1a;设置单页PPT内不…

PPT录制视频的方法有哪些?分享5种亲测好用的方法

PPT文稿可以通过图文或者动画的形式&#xff0c;直观形象地把内容展现给观众&#xff0c;从而给观众留下深刻的印象。比如老师讲课时会用到PPT&#xff0c;公司开会时也会用到PPT。除了需要使用到PPT文稿之外&#xff0c;有时还要对它进行录制。 那你知道PPT录制视频的方法有哪…

计算机课怎样制作ppt 课件,如何制作PPT课件视频

由于计算机的大量普及和多媒体技术的发展&#xff0c;使用多媒体上课已经是一种常见的事。我们在课堂和线上学习时&#xff0c;经常可以看到老师制作的相关知识的PPT课件。虽然我们都知道PPT课件是由PPT制作的幻灯片&#xff0c;可还是比较好奇老师是如何把一段完整PPT课件视频…

PPT 录制视频

有时候&#xff0c;需要使用PPT录制视频&#xff0c;比如在线学术会议需要上传录制好的video。具体如何操作呢&#xff1f; 选择 幻灯片放映 --> 录制幻灯片演示 --> 从头开始录制 这样录制结束后&#xff0c;每一页会多了一个音频&#xff0c;这就是录入的 旁白。 选择…

【从ppt里导出视频的方法】

找到ppt文件 在查看里显示后缀 Win xp&#xff1a;https://jingyan.baidu.com/article/2a1383285f0bd4464b134f56.html Win7&#xff1a;https://jingyan.baidu.com/article/8ebacdf005661108f65cd5b7.html Win8&#xff1a;https://jingyan.baidu.com/article/6d704a132cd46d6…

办公小技巧:ppt怎么录视频?

ppt怎么录视频&#xff1f;办公软件中最常用到的软件有哪个&#xff1f;基本上都是word、excel、ppt、pdf这四个是最为常用的&#xff0c;当你想要制作宣传海报的时候你会选择哪个软件呢&#xff1f;是的&#xff0c;选择ppt是最合适的。 ppt最被人常用到的就是用于制作宣传广告…

如何在PPT中嵌入视频

在前两期博客文章中介绍了三种插入视频到PPT的应用&#xff0c;一、插入直接播放视频&#xff1b;二、插入MediaPlayer播放器视频&#xff1b;三、插入RM视频。以上几种方法均是以链接的方式完成&#xff0c;如果将PPT发到其他电脑中&#xff0c;则视频不能正常播放。所以&…

PPT,我的视频制作利器

很多人觉得做视频就是要拿出手机、相机去拍出来才算。 其实&#xff0c;ppt 也是可以做视频的&#xff0c;而且还是很不错的视频制作利器&#xff0c;这点可能很多人并不知道&#xff0c;大家基本都把 ppt 当成是写总结汇报的静态幻灯片工具。 比如&#xff0c;昨天我推送的这个…

如何制作PPT

PowerPoint(PPT)是专门用于制作演示文稿(俗称幻灯片)PPT应用领域很广泛的&#xff0c;如工作汇报、企业宣传、产品推介、婚礼庆典、项目竞标、管理咨询等领域。为什么学习制作ppt&#xff0c;因为可以成为提升工作效率的好帮手。PPT包含有很多的功能&#xff0c;各取所好&#…

电脑录屏怎么录ppt?三个ppt录制视频的方法

PPT演示文稿是人们在日常生活和学习中常用的工具&#xff0c;它也被广泛地运用于各个方面。最近有不少朋友问小编ppt录制视频的方法&#xff0c;其实ppt录制视频的方法有很多。如果只需要录制PPT内容&#xff0c;可以用PPT自带的“屏幕录制”来录制视频就可以了&#xff0c;如果…