Linux打印time_t的方法

  • Linux下time_t时间类型

time_t类型定义在time.h头文件中:

#ifndef __TIME_T  
#define __TIME_T  
typedef  long  time_t;  
#endif  

可见,time_t实际是一个长整型。其值表示为从UTC(coordinated universal time)时间1970年1月1日00时00分00秒(也称为Linux系统的Epoch时间)到当前时刻的秒数。由于time_t类型长度的限制,它所表示的时间不能晚于2038年1月19日03时14分07秒(UTC)。为了能够表示更久远的时间,可用64位或更长的整形数来保存日历时间,这里不作详述。
使用time()函数获取当前时间的time_t值,使用ctime()函数将time_t转为当地时间字符串。
备注:UTC时间有时也称为GMT时间,其实UTC和GMT两者几乎是同一概念。它们都是指格林尼治标准时间,只不过UTC的称呼更为正式一点。两者区别在于前者是天文上的概念,而后者是基于一个原子钟。

  • Linux下打印时间的格式为:

printf("%lu\n",time); -2020-02-19:10:19:20修改 printf("%ld\n",time);

  • Linux下通常会涉及到时间参数的打印:比如获取文件属性stat函数,该函数原型为:
  int stat(const char *path, struct stat *buf);
  其中buf是一个文件的信息结构体,该结构体内成员如下:
  struct stat {
    dev_t  st_dev; /* ID of device containing file */
    ino_t     st_ino;     /* inode number */
    mode_t    st_mode;    /* protection */
    nlink_t   st_nlink;   /* number of hard links */
    uid_t     st_uid;     /* user ID of owner */
    gid_t     st_gid;     /* group ID of owner */
    dev_t     st_rdev;    /* device ID (if special file) */
    off_t     st_size;    /* total size, in bytes */
    blksize_t st_blksize; /* blocksize for filesystem I/O */
    blkcnt_t  st_blocks;  /* number of 512B blocks allocated */
   time_t    st_atime;   /* time of last access */
   time_t    st_mtime;   /* time of last modification */
   time_t    st_ctime;   /* time of last status change */
           };

共享内存中的shmctl函数中也会涉及到时间time参数,所以linux开发中难免会用到time参数打印;


你可能感兴趣的:(Linux应用开发)