如何在Linux中获取文件创建日期?

如何在Linux中获取文件创建日期?,第1张

概述我正在处理批量文件,这些文件在其生命的不同时间包含有关同一对象的信息,并且订购它们的唯一方法是创建日期. 我在用这个: //char* buffer has the name of filestruct stat buf;FILE *tf;tf = fopen(buffer,"r");//check handlefstat(tf, &buf);fclose(tf);pMyObj->l 我正在处理批量文件,这些文件在其生命的不同时间包含有关同一对象的信息,并且订购它们的唯一方法是创建日期.
我在用这个:

//char* buffer has the name of filestruct stat buf;file *tf;tf = fopen(buffer,"r");//check handlefstat(tf,&buf);fclose(tf);pMyObj->lastchanged=buf.st_mtime;

但这似乎不起作用.
我究竟做错了什么?是否还有其他更可靠/简单的方法可以在linux下获取文件创建日期?

解决方法 fstat适用于文件描述符,而不适用于file结构.最简单的版本:

#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>#ifdef HAVE_ST_BIRTHTIME#define birthtime(x) x.st_birthtime#else#define birthtime(x) x.st_ctime#endifint main(int argc,char *argv[]){        struct stat st;        size_t i;        for( i=1; i<argc; i++ )        {                if( stat(argv[i],&st) != 0 )                        perror(argv[i]);                printf("%i\n",birthtime(st));        }        return 0;}

您需要通过检查sys / stat.h或使用某种autoconf构造来确定您的系统是否在其stat结构中具有st_birthtime.

总结

以上是内存溢出为你收集整理的如何在Linux中获取文件创建日期?全部内容,希望文章能够帮你解决如何在Linux中获取文件创建日期?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1023188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存