2015-09-07 90 views
0

计划:如何打印日期和时间由stat函数返回

#include<stdio.h> 
#include<fcntl.h> 
#include<sys/stat.h> 
#include<sys/types.h> 
#include<unistd.h> 
void main() 
{ 
    struct stat stbuf; 
    stat("alphabet",&stbuf); 
    printf("Access time = %d\n",stbuf.st_atime); 
    printf("Modification time = %d\n",stbuf.st_mtime); 
    printf("Change time = %d\n",stbuf.st_mtime); 
} 

上述程序中,给出了以下的输出:

输出:

$ ./a.out 
Access time = 1441619019 
Modification time = 1441618853 
Change time = 1441618853 
$ 

它打印日期为秒。在C中,将时间打印为stat函数返回的可读格式的方式是什么。 stbuf.st_atime的返回类型是__time_t。

在此先感谢...

+0

OT:'主()''返回不int''void'。 – alk

回答

7

尝试使用char* ctime (const time_t * timer);功能从time.h中库。

#include <time.h> 
#include<stdio.h> 
#include<fcntl.h> 
#include<sys/stat.h> 
#include<sys/types.h> 
#include<unistd.h> 
void main() 
{ 
    struct stat stbuf; 
    stat("alphabet",&stbuf); 
    printf("Access time = %s\n", ctime(&stbuf.st_atime)); 
    printf("Modification time = %s\n", ctime(&stbuf.st_mtime)); 
    printf("Change time = %s\n", ctime(&stbuf.st_mtime)); 
} 

它会给你的结果如下:

$ ./test 
Access time = Mon Sep 07 15:23:31 2015 

Modification time = Mon Sep 07 15:23:31 2015 

Change time = Mon Sep 07 15:23:31 2015