gpt4 book ai didi

c++ - C stat() 和夏令时

转载 作者:太空狗 更新时间:2023-10-29 21:30:12 25 4
gpt4 key购买 nike

我在使用 stat() 函数时遇到了严重的问题。我有一个在 cygwin ond Windows 7 下编译的应用程序和在 Windows 7 上用 MSVC++ 编译的同一个应用程序。该应用程序包含以下代码:

struct stat stb;
memset( &stb, 0, sizeof( stb ) );

stat( szPath, &stb );

cout << hex << uppercase << setw(8) << stb.st_mtime << endl;

szPath 是文件的路径。应用程序不会以任何方式修改该文件。问题是,对于某些 文件,我得到了不同的结果。例如:

cygwin version: 40216D72
MSVC++ version: 40217B82

差值总是 E10 = 3600 = 1 小时

通过使用谷歌,i found this ,这似乎与我看到的问题完全相同。有没有一种可移植的方法来解决这个问题?我无法使用任何 WinAPI 调用。最简单可靠的解决方案是我正在寻找的,但如果它需要复杂化,那就这样吧。可靠性和可移植性(win + linux)是这里最重要的事情。

最佳答案

为了在这里获得可靠性和可移植性(或者在大多数这种情况下,两个平台使用应该是“相同”的代码来做不同的事情),您可能需要使用某种形式的目标相关代码,例如:

#ifdef _MSC_VER
// do MSVC++-specific code
#else
// do Linux/Cygwin/generic code
#endif

然后您应该能够在 _MSC_VER 部分使用 WinAPI 调用,因为它只会在您使用 MSVC++ 时编译

关于c++ - C stat() 和夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3264665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com