什么是Unix函数gmtime_r的Windows等价物?

时间:2012-08-20 20:19:12

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

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

gmtime_r(&now, &tm_time);

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

1 个答案:

答案 0 :(得分:12)

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

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