• Linux time()函数


    函数简介

      函数名: time

      头文件:time.h

      函数原型:time_t time(time_t * timer)

      功能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime将time_t所表示的CUT时间转换为本地时间(我们是+8区,比CUT多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。

      补充说明:time函数的原型也可以理解为 long time(long *tloc),即返回一个long型整数。因为在time.h这个头文件中time_t实际上就是:

      #ifndef _TIME_T_DEFINED

      typedef long time_t; /* time value */

      #define _TIME_T_DEFINED /* avoid multiple defines of time_t */

      #endif

      即long。

     

      函数应用举例

      程序例1:

      time函数获得日历时间。日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。

      #include <time.h>

      #include <stdio.h>

       int main(void)

      {

      time_t t; t = time(NULL);

      printf("The number of seconds since January 1, 1970 is %ld",t);

      return 0;

      }

     

      程序例2:

      //time函数也常用于随机数的生成,用日历时间作为种子。

      #include <stdio.h>

      #include <time.h>

      #include<stdlib.h>

      int main(void)

      {

      int i;

      srand((unsigned) time(NULL));

      printf("ten random numbers from 0 to 99\n\n");

      for(i=0;i<10;i++)

      {

      printf("%d\n",rand()%100);

      }

      return 0;
     
       }
     

      程序例3:

      用time()函数结合其他函数(如:localtimegmtimeasctimectime)可以获得当前系统时间或是标准时间。

      #include <stdio.h>

      #include <stddef.h>

      #include <time.h>

      int main(void)

      {

      time_t timer;//time_t就是long int 类型

      struct tm *tblock;

      timer = time(NULL);//这一句也可以改成time(&timer);

      tblock = localtime(&timer);

      printf("Local time is: %s\n",asctime(tblock));

      return 0;

      }

    注:一下为linux  man手册中关于time相关函数的手册

    CTIME(3)                   Linux Programmer's Manual                  CTIME(3)
    
    NAME
           asctime,   ctime,   gmtime,   localtime,  mktime,  asctime_r,  ctime_r,
           gmtime_r, localtime_r - transform date and time to broken-down time  or
           ASCII
    
    SYNOPSIS
           #include <time.h>
    
           char *asctime(const struct tm *tm);
           char *asctime_r(const struct tm *tm, char *buf);
    
           char *ctime(const time_t *timep);
           char *ctime_r(const time_t *timep, char *buf);
    
           struct tm *gmtime(const time_t *timep);
           struct tm *gmtime_r(const time_t *timep, struct tm *result);
    
           struct tm *localtime(const time_t *timep);
           struct tm *localtime_r(const time_t *timep, struct tm *result);
    
           time_t mktime(struct tm *tm);
    
       Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
    
           asctime_r(), ctime_r(), gmtime_r(), localtime_r():
           _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _BSD_SOURCE || _SVID_SOURCE ||
           _POSIX_SOURCE

     

  • 相关阅读:
    Python深浅拷贝&垃圾回收&with语句
    面向对象
    三器(装饰器,生成器,迭代器)
    Redis数据类型&优缺点&持久化方式
    localStroge和sessionStorge
    redis哨兵&codis
    Redis分布式锁
    技术点剖析
    【牛客网】牛客练习赛4 A Laptop【树状数组+离散化】
    组合数有关的公式及常用求和【数学--排列组合】
  • 原文地址:https://www.cnblogs.com/xuanyuanchen/p/2766596.html
Copyright © 2020-2023  润新知