2015-09-07 34 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