当前位置: 首页 > 面试题库 >

获取Linux中文件的最后修改时间

公良骁
2023-03-14
问题内容

我正在使用C程序,需要获取文件的最后修改时间。程序要做的是一个函数循环遍历目录中的每个文件,当找到特定文件时,它将调用另一个函数来检查文件的最后修改时间。

在该目录下有一个mylog.txt.1mylog.txt.2mylog.txt.3等当我使用ll命令我可以看到,列出目录在linux
mylog.txt.1mylog.txt.2进行了修改,在5月4日,并mylog.txt.3于5月3日进行了修改。

但是,当程序检查这些文件中的每个文件时,它总是会返回3rd may。下面是我正在使用的代码

void getFileCreationTime(char *filePath)
{
    struct stat attrib;
    stat(filePath, &attrib);
    char date[10];
    strftime(date, 10, "%d-%m-%y", gmtime(&(attrib.st_ctime)));
    printf("The file %s was last modified at %s\n", filePath, date);
    date[0] = 0;
}

我尝试了的所有不同变体st_ctime,即st_mtime和,st_atime但是它们都返回5月3日。

感谢您的任何帮助,您可以提供。


问题答案:

这是时区很重要的情况之一。你得到gmtimest_mtime。您应该改用localtimeviz。

strftime(date, 20, "%d-%m-%y", localtime(&(attrib.st_ctime)));

这是因为ls使用了您的时区信息,并且当您将其gmtime用作显示的一部分时,它故意省略了任何时区信息。



 类似资料:
  • 问题内容: 有没有办法只选择目录中的最后一个文件(带有扩展名?) 还是我必须解析整个目录并使用检查? 问题答案: 是的,您必须通读它们。但是由于目录访问已被缓存,因此您不必担心。

  • 问题内容: 我想通过curl获取远程文件的最后修改日期。有谁知道这是怎么做到的吗? 问题答案: 从PHP的文章: filemtime()是这里的关键。但是我不确定是否可以获取 远程 文件的最后修改日期,因为服务器应该将其发送给您……也许在HTTP标头中?

  • 本文向大家介绍vbscript获取文件的创建时间、最后修改时间和最后访问时间的方法,包括了vbscript获取文件的创建时间、最后修改时间和最后访问时间的方法的使用技巧和注意事项,需要的朋友参考一下 FileSystemObject 对象简介: FileSystemObject 对象用于访问服务器上的文件系统。此对象可对文件、文件夹以及目录路径进行操作。也可通过此对象获取文件系统的信息。 下面的代

  • 问题内容: 我正在尝试使用node.js检索服务器上文件的最后修改日期。 我试过了 和 两者都以未定义形式返回。 问题答案: 对于节点v 4.0.0及更高版本: 或同步:

  • 本文向大家介绍使用golang获取linux上文件的访问/创建/修改时间,包括了使用golang获取linux上文件的访问/创建/修改时间的使用技巧和注意事项,需要的朋友参考一下 在linux上想获取文件的元信息,我们需要使用系统调用lstat或者stat。 在golang的os包里已经把stat封装成了Stat函数,使用它比使用syscall要方便不少。 这是os.Stat的原型: func S

  • 本文向大家介绍JavaScript获取当前网页最后修改时间的方法,包括了JavaScript获取当前网页最后修改时间的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript获取当前网页最后修改时间的方法。分享给大家供大家参考。具体如下: 下面的JS代码输出当前网页最后修改时间,用到了document.lastModified属性 运行效果如下: 希望本文所述对大家的jav