2015-05-07 4 views
0

Я использовал функцию stat() на linux для получения сведений о файле.
Одна из деталей - время последнего доступа, хранящееся в переменной «st_atime»
Но что такое спецификатор формата для отображения этой детали. Моя программа продолжает бросать ошибки.
Спецификатор формата для печати содержимого буфера «stat»

#include<stdio.h> 
#include<sys/stat.h> 

int main() 
{ 
    struct stat buf; 
    stat("reversi.py",&buf); 
    printf("The size is...%d\n",buf.st_atime); 
    return 0; 
} 

Ошибка

warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘__time_t’ [-Wformat=] 
    printf("The size is...%d\n",buf.st_atime); 

Что такое правильный формат спецификатора для такого рода данных.
Также есть несколько деталей, возвращаемых функцией. Там есть место, где я могу найти все правильные спецификации формата для этих деталей.?
Спасибо.

+0

использования, например, ['strftime'] (http://en.cppreference.com/w/c/chrono/strftime), чтобы отформатировать время в строке. Или одну из [связанных функций даты/времени] (http://en.cppreference.com/w/c/chrono). –

+0

@JoachimPileborg это утомительно, если мне нужно преобразовать все детали. Любой shorcut? – Pradeep

+0

Вот как это работает, нет стандартного формата 'printf' для печати. –

ответ

0

CTime(), gmtime() и МестноеВремя() Все функции принимает time_t тип данных.

#include <stdio.h> 
#include <stdlib.h> 
#include <sys/types.h> 
#include <unistd.h> 
#include<sys/stat.h> 
#include <time.h> 

int main() 
{ 
    struct stat buf; 
    stat("1.c",&buf); 
    printf("Last Access was : %s\n",ctime(&buf.st_atime)); 
    return 0; 
} 

это будет печатать

Last Access was : Tue Apr 28 10:09:15 2015 
Смежные вопросы