文档章节

杂乱

文刀人韦
 文刀人韦
发布于 2017/08/07 20:24
字数 960
阅读 3
收藏 0

多线程:

http://www.cnblogs.com/youtherhome/archive/2013/03/17/2964195.html

http://www.cnblogs.com/feisky/archive/2009/11/12/1601824.html

 

 

一,clock.cpp

time.h 是ISO C99 标准日期时间头文件。

sys/time.h 是Linux 系统的日期时间头文件。

 

localtime_r

头文件:

#include <time.h>

函数定义:

struct tm *localtime_r(const time_t *timep, struct tm *result);

功能:

把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为本地时间,而gmtimes函数转换后的时间没有经过时区变换,是UTC时间 。

 

struct tm* gmtime(const time_t* timep);

将time_t表示的时间转换为没有经过时区转换的UTC时间,是一个struct tm结构指针

 

参数:

time_t 从1970-1-1时计算的utc时间。 tm 结构体用于获取返回的时间,定义如下

struct tm {

  int tm_sec; /* 秒 – 取值区间为[0,59] */

  int tm_min; /* 分 - 取值区间为[0,59] */

  int tm_hour; /* 时 - 取值区间为[0,23] */

  int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */

  int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */

  int tm_year; /* 年份,其值等于实际年份减去1900 */

  int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */

  int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */

  int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/

  };

返回值:

返回指向tm 结构体的指针.tm结构体是time.h中定义的用于分别存储时间的各个量(年月日等)的结构体.

示例:

              time_t tNow =time(NULL); //tNow,获取从1970,1,1到现在的秒数,这一行可以写成

//time_t tNow; time(&tNow)

cout<<tNow<<endl;

 

             time_t tEnd = tNow + 1900;

             struct tm ptm = { 0 };

             struct tm ptmEnd = { 0 };

             localtime_r(&tNow, &ptm);

             localtime_r(&tEnd, &ptmEnd);

 

二,

1.

在linux中编译

写一个test.cpp,

g++ -o a a.cpp

将a.cpp编译为可执行文件,名字为a(-o 选项后面的名字为生成的可执行文件名)。

如果有多个源文件的话,编译:

g++ -o a a.cpp b.cpp c.cpp ...

 

2.nullptr是C++11关键字,表示空指针。

 

3.gettimeofday()

获取从1970年1月1日0时0分 到 现在的时间;

函数原型:

#include<sys/time.h> int gettimeofday(struct timeval*tv,struct timezone *tz )

这个函数会把时间包装为一个结构体返回。包括秒,微妙,时区等信息.

在gettimeofday()函数中tv或者tz都可以为空。如果为空则就不返回其对应的结构体。 

具体如下:

struct timeval{ long tv_sec;/*秒*/ long tv_usec;/*微妙*/ }; struct timezone{ int tz_minuteswest;/*和greenwich时间差*/ int tz_dsttime; }

程序实例

//直接获取两次系统时间来得到运行时间

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

int main() { float time_use=0; struct timeval start; struct timeval end; gettimeofday(&start,NULL); //gettimeofday(&start,&tz);结果一样 printf("start.tv_sec:%d\n",start.tv_sec); printf("start.tv_usec:%d\n",start.tv_usec); int i = 100000000; while(i--); gettimeofday(&end,NULL); printf("end.tv_sec:%d\n",end.tv_sec); printf("end.tv_usec:%d\n",end.tv_usec); time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒 printf("time_use is %.10f\n",time_use); }

 

3.时间单位

秒 · 毫秒·微秒 ·纳秒 ·皮秒 ·飞秒 1秒=1000毫秒(ms) 1秒=1,000,000 微秒(μs) 1秒=1,000,000,000 纳秒(ns) 1秒=1,000,000,000,000 皮秒(ps) 1秒=1,000,000,000,000,000 飞秒(fs) 

 

4.未曾清贫难成人

不经打击老天真

自古英雄出炼狱

从来富贵入凡尘

醉生梦死谁成器

拓马长枪定乾坤

挥军千里山河在

立名扬威传后人

 

5.如何理解void* (*start_routine)(void *)

如果(*statr_routine)是函数,那么statr_routine就是函数指针

你定义了一个函数指针。名字叫 start_routine 。 

这个函数的返回值是void *(一个指针) 

参数是void *(一个指针) ,意味着 函数的参数是任意类型指针

如果有一个函数a();

调用这个函数,statr_routine=a;//a就是函数地址

 

 

 

 

© 著作权归作者所有

上一篇: 8月8号
文刀人韦
粉丝 0
博文 35
码字总数 79740
作品 0
渭南
私信 提问

暂无文章

Activity启动模式二

上篇文章Activity启动模式一主要介绍了Activity的四种启动模式,这些启动模式都是在AndroidManifest中进行配置的。除此之外,Android系统还通过Intent类提供了一些标志位,同样可以指定Activ...

ltlovezh
11分钟前
4
0
三原色还原

1、Color Filter Array — CFA 随着数码相机、手机的普及,CCD/CMOS 图像传感器近年来得到广泛的关注和应用。 图像传感器一般都采用一定的模式来采集图像数据,常用的有 BGR 模式和 CFA 模式...

天王盖地虎626
22分钟前
3
0
kubernetes pod exec接口调用

正文 一般生产环境上由于网络安全策略,大多数端口是不能为集群外部访问的。多个集群之间一般都是通过k8s的ApiServer组件提供的接口通信,如https://192.168.1.101:6443。所以在做云平台时,...

码农实战
59分钟前
8
0
3_数组

3_数组

行者终成事
今天
8
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部