微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C ++ last_write_time与Python相比

如何解决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 举报,一经查实,本站将立刻删除。