问题描述
我正在将一行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 (将#修改为@)