File 缓存时间戳

File 缓存时间戳,file,caching,timestamp,stat,File,Caching,Timestamp,Stat,我有一个项目,在该项目中,我正在创建一个文件,并使用以下方法获取文件创建时间:- stat("C:/repos/trunk/logging/test.log",&attrib); 我想缓存最后一个时间戳,这样我就不会在每个日志消息上都使用它 请提供帮助 谢谢stat没有给你文件创建时间。它为您提供文件修改时间、访问时间和inode更改时间 如果需要,您当然可以缓存该信息,但要遵守缓存的正常问题,也就是说,如果文件被修改,并且您没有足够快地再次检查,那么您就有可能在缓存中存在过时数据 如

我有一个项目,在该项目中,我正在创建一个文件,并使用以下方法获取文件创建时间:-

stat("C:/repos/trunk/logging/test.log",&attrib);
我想缓存最后一个时间戳,这样我就不会在每个日志消息上都使用它

请提供帮助


谢谢

stat
没有给你文件创建时间。它为您提供文件修改时间、访问时间和inode更改时间

如果需要,您当然可以缓存该信息,但要遵守缓存的正常问题,也就是说,如果文件被修改,并且您没有足够快地再次检查,那么您就有可能在缓存中存在过时数据


如果您的程序是单线程的,并且只处理一个文件,那么您可以使用
静态变量。否则,您可能希望创建一个对象(在OO意义上),该对象将缓存的时间戳和缓存值的TTL保持为内部状态,并提供查询和/或刷新值的方法。

什么是“缓存最后的时间戳”?不管你想缓存什么,为什么不把它存储在一个变量中呢?我只想缓存它,这样我就不需要点击每一条日志消息,同样存储在变量中就像字符串date1//一个声明为全局的变量或者我已经做过的类似的事情:-stat(“C:/repos/trunk/logging/test.log”,&attrib);时钟=gmtime(&(属性时间));好吧,你可以用一个全局的,但你应该设法避免它。但无论你做什么,它都会涉及到将信息存储在某个地方。@OliCharlesworth从u-r端搜索了很长时间的一些建议:我正在检查stat功能,它通过使用:-stat(“C:/repos/trunk/logging/test.log”、&attrib)显示了这一点;时钟=gmtime(&(属性时间))//st_ctime给出了创建时间,我不会说它是单线程的,但是我目前正在处理一个文件号。这意味着上次更改文件属性(如权限、TIMSTAMP、扩展属性等)的时间,与上次更改文件内容的时间
st_mtime
相反:如果我只需要文件刚创建时的时间,那么我应该使用什么?并给出一些将时间排序到某个位置的建议…我给出了一些存储时间的建议。至于如何获得创建时间,POSIX中不存在这样的功能(
stat
是POSIX函数)。但您似乎正在使用MS Windows,毫无疑问,在该操作系统下,有一种特定于非便携操作系统的方法来获取文件创建时间。但我对微软的Windows知之甚少,也不知道它的功能是什么。