C ++ last_write_time与Python相比

问题描述

我正在将一行Python移植到c ++中,以处理文件修改时间。因为只有C ++的更高版本才支持文件系统,所以我认为我会使用boost,并且出于遗留兼容性的原因,我正在使用Boost 1.64文件系统。我的 os.path.getmtime端口是boost::filesystem::last_write_time。在OSX 10.14.6 XCode 11.0中,Python返回分数值,而与实现相关的last_write_time返回整数。

代码是:

def GetModifiedTime(fileName):
    return os.path.getmtime(fileName)

,并且在c ++代码

时返回1597265166.4072416
#include "boost/filesystem.hpp"

int main(int argc,char *argv[])
{
    boost::filesystem::path p = argv[0];
    auto v = boost::filesystem::last_write_time(p);    
    return 0;
}

并返回1597265166.0

我希望这两个返回值匹配。

我相信boost::filesystem将与std::filesystem兼容。 last_write_time函数

返回值:对p的最后一次数修改的时间,取决于 获得的ISO / IEC 9945 stat结构成员st_mtime的值 就像通过ISO / IEC 9945 stat()一样。

std::time_t结构中,链接显示

能够表示时间的算术类型。虽然没有定义, 这几乎总是一个整数值,其中包含秒数 (不计算leap秒)自UTC 1970年1月1日00:00开始, 到POSIX时间。

这是不幸的,因为我希望返回几分之一秒。 last_write_time仅仅是使用错误的东西吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)