时间结构有struct timespec 和struct timeval

来源:互联网 发布:服务器数据丢失的原因 编辑:程序博客网 时间:2024/04/29 01:30
在Linux中常用的时间结构有struct timespec 和struct timeval 。
下面是两个结构的定义
struct timespec
{
    __time_t tv_sec;        /* Seconds. */
    long   tv_nsec;       /* Nanoseconds. */
};
struct timeval {
        time_t tv_sec;  
        suseconds_t tv_usec;
}; 
两者的区别是timespec的第二个参数是纳秒数,而timeval的第二个参数是毫秒数。


如何通过这两个结构获取系统的当前时间
struct timespec
可以通过 int clock_gettime(clockid_t clk_id, struct timespec *tp)来获取


参数 clk_id : 检索和设置的clk_id指定的时钟时间。可以设置如下:
CLOCK_REALTIME:系统实时时间,随系统实时时间改变而改变,即从UTC1970-1-1 0:0:0开始计时,如果系统时间被用户改成其他,则对应的时间相应改变
CLOCK_REALTIME_COARSE:和CLOCK_REALTIME类似,但是执行速度快,精度低
  CLOCK_MONOTONIC:从系统启动这一刻起开始计时,不受系统时间被用户改变的影响
CLOCK_MONOTONIC_COARSE :和CLOCK_MONOTONIC类似,但是执行速度快,精度低
CLOCK_BOOTTIME:和  CLOCK_MONOTONIC 类似,但是包括了系统休眠的时间。
  CLOCK_PROCESS_CPUTIME_ID:本进程到当前代码系统CPU花费的时间
  CLOCK_THREAD_CPUTIME_ID:本线程到当前代码系统CPU花费的时间
参数:tp 返回时间值
返回值 0成功, 1失败。
例如 
struct timespec ts;
clock_gettime(CLOCK_REALTIME, &ts);


struct timeval 
可以通过int gettimeofday(struct timeval *tv, struct timezone *tz);来获取
参数:struct timeval *tv 将带回当前的系统时间,从UTC1970-1-1 0:0:0开始计时
      struct timezone *tz 带回当前的时区信息,如果不需要刻意设置为0
timezone结构描述如下:     
struct timezone
{
    int tz_minuteswest;  //和格林威治 时间差了多少分钟
    int tz_dsttime;  //日光节约时间的状态(夏时制)
};
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 江苏海门农村自建房房产证怎么办 颈总动脉斑块形成怎么办 颈椎引起腔梗头晕怎么办 魅族手机变成英文怎么办 员工失去了工作乐趣怎么办 古墓丽影9出bug怎么办 气炉子打不着火怎么办 下面人员不参加公司拓展怎么办 重点班的差生怎么办 江苏考生选修考d怎么办 眼睛里有虫子该怎么办 屋里毛絮特别多怎么办 信用卡人员核核查单位地址怎么办 红米note电源键失灵怎么办 红米note4x跳屏怎么办 红米开机键坏了怎么办 红米note2开关键不灵敏怎么办 大学生论文检测系统忘记密码怎么办 快手实验室没有k歌怎么办 皮肤一到冬天就会起皮脱落怎么办 嘴上的皮撕破了怎么办 身体皮肤干燥起皮怎么办 把公司数据库弄宕机了怎么办 地铁上临时变站怎么办 大学实践课挂了怎么办 军训的人长得矮怎么办 军训脸被晒黑了怎么办 晚上吃了油炸的怎么办 楼梯又陡又窄怎么办 小孩不认真做作业怎么办 水厂出水水质不达标怎么办 野猪铁夹子夹到怎么办 燃气灶开孔尺寸大了怎么办 苹果电脑视频显示缺少插件怎么办 安装拼多多显示校验失败怎么办 中央庭黑盒被抢怎么办 lab值a值偏高怎么办 橱房管道堵死了怎么办 微信被别的手机同步登录怎么办 计算机机房空调坏了怎么办 被蝎子蛰了怎么办怎么处理?