为srand()提供Windows的时间函数



我一直在寻找下面代码补丁的精确Win实现。我不是一个伟大的程序员,我的代码最初是在UNix中,但为了Win,我必须尽可能少地修改它。我从一些谷歌搜索中了解到,主要问题是"获取日期",而这并没有Win的等价物。然而,我希望尽可能保持相同的程序结构。

struct timeval tv;
time_t curtime;
gettimeofday(&tv, NULL);    // ???
curtime = tv.tv_usec;
srand(tv.tv_usec); //time(&curtime)

如果您需要将随机种子作为次秒数,请执行以下操作:

#ifdef WIN32
::srand( GetTickCount() );
#else
//your existing code
#endif

您可以使用windows本机函数GetSystemTimeAsFileTime()来获取时间,并编写一个包装器将其放入struct-timeval结构中。

相关内容

  • 没有找到相关文章

最新更新