我在Linux上使用了 stat()函数来检索有关文件的详细信息。
详细信息之一是存储在变量“ st_atime ”中的上次访问时间
但是显示这种细节的格式说明符是什么。我的程序不断抛出错误。

#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);

此类数据的正确格式说明符是什么?
函数还返回了更多详细信息。是否有地方可以找到所有适合这些详细信息的格式说明符?
谢谢。

最佳答案

ctime() gmtime() localtime()函数均采用 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

关于c - 用于打印 “stat”缓冲区内容的格式说明符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30098362/

10-13 08:49