【问题标题】:What is the Windows equivalent of the Unix function gmtime_r?Unix 函数 gmtime_r 的 Windows 等效项是什么?
【发布时间】:2012-08-16 04:30:55
【问题描述】:

我正在将一些 Unix 代码移植到 Windows Visual Studio 2010 中。我遇到了以下行

gmtime_r(&now, &tm_time);

我发现 gmtime_r() 是一个标准的 Unix 函数,但我希望找到 Windows 的等效函数。我在 time.h 中找到了很多 gmtime 函数,但是我很难找到哪个是等效的,如果它甚至存在的话。有人能指出我正确的方向吗?

【问题讨论】:

    标签: c++ visual-studio-2010 unix time porting


    【解决方案1】:

    gmtime_r() 是 gmtime() 的线程安全版本。 gmtime() 的 MSVC 实现已经是线程安全的,返回的 struct tm* 分配在线程本地存储中。

    如果函数在同一个线程上被多次调用并且返回的指针被存储,这并不能使它免于麻烦。您可以改用 gmtime_s()。最接近 gmtime_r() 但参数颠倒了;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-27
      • 2011-12-02
      • 2011-02-10
      • 2015-10-04
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多