您的位置:首页 > 其它

获取设置时间系统调用

2015-07-21 19:58 225 查看
名字用处
time_t time(time_t *t)获取系统时间,获取的为秒数
int stime(time_t *t)设置系统时间,设置的为秒数
int gettimeofday(struct timeval *tv,struct timezone *tz)设置系统时间,可获取秒数与微秒数
int settimeofday(struct timeval *tv,struct timezone *tz)设置系统时间,可设置秒数与微秒数
以下是struct timeval的说明

在debian linux的man页中对gettimeofday函数的说明中,有这样一个说明:

DESCRIPTION
The functions gettimeofday and settimeofday can get and set the time as
well as a timezone. The tv argument is a timeval struct, as specified
in <sys/time.h>:

struct timeval {
time_t       tv_sec;     /* seconds */
suseconds_t   tv_usec; /* microseconds */
};

其中对tv_usec的说明为时间的毫秒部分。 而在实际中,该函数以及Linux内核返回的timeval
类型的时间值,tv_usec代表的是微秒精度(10的-6次方秒)。


在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在我们执行date -s后,如果马上重起机器,修改时间就有可能没有被写入CMOS,这就是问题的原因。如果要确保修改生效可以执行如下命令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: