我正在将一些Unix代码移植到Windows Visual Studio 2010中。我遇到了以下一行
gmtime_r(&now, &tm_time);
我发现gmtime_r()是一个标准的Unix函数,但我希望找到Windows等价物。我在time.h中发现了很多gmtime函数,但是我很难找到哪一个是等价的,如果它存在的话。有人能指出我正确的方向吗?
答案 0 :(得分:12)
gmtime_r()是gmtime()的线程安全版本。 gmtime()的MSVC实现已经是线程安全的,返回的struct tm *在线程本地存储中分配。
如果在同一个线程上多次调用该函数并且存储了返回的指针,那么这不会使它免于麻烦。您可以使用gmtime_s()代替。最接近gmtime_r()但反转的参数;)