10

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

gmtime_r(&now, &tm_time);

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

4

1 回答 1

14

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

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

于 2012-08-21T18:19:34.960 回答