Unix/Linux系统时间函数API

首先说明关于几个时间的概念:

世界时:起初,国际上的标准时间是格林尼治标准时间,以太阳横穿本初子午线的时刻为标准时间正午12点。它根据天文环境来定义,就像古代人们根据日晷来计时一样,如下图:

原子时:地球一年中自转的速度并不是恒定的,它有时候转的快,有时候转的慢,地震可能使得地球自转加快,而发射卫星则使得自转减缓,但地球的总体自转趋势是越来越慢。如果按照地球自转一圈固定为24小时来定义时间长度,会导致一秒钟的长度不稳定,或长或短。为解决这个问题,科研人员发现某元素的原子运动频率很稳定,可以以该元素原子运动一个周期的时间作为一秒的衡量单位,这就是原子时。如下图

协调时:原子时和世界时的时间相冲突,一个固定不变,一个或长或短,因为地球的总体自转趋势是越来越慢,随着时间的增加,它们之间差距会越来越大,原子时会比世界时快,5000年后原子时会比世界时快1个小时,这样就出现了冲突,到底以哪个为准?为了折衷,出现了协调时,当原子时比世界时快了的时候,让原子时暂停,等一下世界时,让世界时赶上来。这些时间的调整就是所谓的“闰秒”。协调时,是我们当前手机、电脑上面显示的那个时间。

Unix/Linux系统提供关于时间的服务,有以下函数API:

time_t

clock_t

时间: 2024-10-10 04:18:43

Unix/Linux系统时间函数API的相关文章

Linux系统时间函数

先来说说自己在做工程过程中的一些理解: 1, 输入time_t,输出tm格式的函数 loctaltime(time_t) / gmtime(time_t) 其中localtime会受时区和夏令时影响,也就是说系统会把函数输入的time_t格式的值作为UTC时间,然后根据本地的TZ环境变量,进行小时的偏移得到一个tm格式的时间: gmtime则不做环境变量相关的处理,直接获得tm格式的值. 2, 输入tm,输出time_t格式的函数mktime() 这个函数也受TZ环境变量的影响,确切来说受夏令时

Unix/Linux系统下获得时间戳函数

在Unix/Linux系统下,使用gettimeofday函数来获得当前系统的时间戳,精度可达到微秒(microsecond,即μs)级别. 通过结构体timeval来存放当前时间戳的信息: #ifndef _STRUCT_TIMEVAL #define _STRUCT_TIMEVAL struct timeval _STRUCT_TIMEVAL { __darwin_time_t tv_sec; /* seconds */ __darwin_suseconds_t tv_usec; /* an

UNIX/Linux系统取证之信息采集案例

UNIX/Linux系统取证之信息采集案例 在UNIX/Linux系统取证中,及时收集硬盘的信息至关重要,<Unix/Linux网络日志分析与流量监控>一书中,将详细讨论各种常见系统进程系统调用及镜像文件获取方法.下面简单举几个例子. 1.收集正在运行的进程 在UNIX/Linux取证时很多系统和网络信息是短时存在的可谓是转瞬即逝,如何准确的捕捉到哪些蛛丝马迹呢?网络安全人员需要具有敏锐的观察力和丰富的经验下面例举几个常用的方法. 首先,在收集主机上启动一个监听进程: #nc -l -p 10

Linux系统时间和硬件时间设置

在Linux中有硬件时钟与系统时钟两种时钟.硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟.系统时钟则是指kernel中的时钟.所有Linux相关指令与函数都是读取系统时钟的设定.因为存在两种不同的时钟,那么它们之间就会存在差异.当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作. 用date命令对系统时间进行设置后,并不会去修改硬件时钟,所以系统重启后,系统时间还算会去读取硬件时间,这就是为何date设置失效到原因. 因此,需要在设置系统时间后,将

linux中时间函数

linux下常用时间类型有四种: time_t . struct   tm. struct  timeval .    struct   timespec 1.time_t   时间函数 time_t  类型在time.h中定义: #ifndef   __TIME__T #define  __TIME_T typedef    long  time_t #endif 可见, time_t 实际上是一个长整型,其值表示从1970年1月1日00时00分00秒(linux系统的Epoch时间)到当前时

Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?

如题 Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免? 一个进程在调用exit命令结束自己的生命的时候,其实他并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,他的作用是使进程退出,但是也仅仅限于一个正常的进程变成了一个僵尸进程,并不能完全将其销毁).在linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有的内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态信息供其他进程收集

获得Unix/Linux系统中的IP、MAC地址等信息

获得Unix/Linux系统中的IP.MAC地址等信息 中高级  |  2010-07-13 16:03  |  分类:①C语言. Unix/Linux. 网络编程 ②手册  |  4,471 次阅读 作者:diaoyf  |  文章来源:http://programmerdigest.cn 实际环境和特殊需求往往会将简单问题复杂化,比如计算机IP地址,对于一个连接中socket,可以直接获得本端和对端的IP.端口信息.但在一些特殊场合我们可能需要更多的信息,比如系统中有几块网卡,他们的Mac地

自动调整linux系统时间和时区与Internet时间同步

调整linux系统时间和时区与Internet时间同步 一.修改时区:# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime修改为中国的东八区# vi /etc/sysconfig/clockZONE="Asia/Shanghai"UTC=falseARC=false 二.配置新的时间日期设定:# date -s 2008/05/06 时间设定:# date -s 18:40:00 查看硬件时间(BIOS的):    hwclock

Linux系统时间管理

一.时区配置 显示时区 [[email protected] ~]# date -R Mon, 19 Dec 2016 14:02:47 +0800 [[email protected] ~]# [[email protected] ~]# date +%z +0800 [[email protected] ~]# 主要就是后面的+0800,东八区 修改时区 [[email protected] ~]# vim /etc/sysconfig/clock [[email protected] ~]