将时间API从Linux移植到Visual Studio 2008

Wil*_*mKF 4 c++ time porting visual-studio-2008 timeval

我有一个应用程序,我移植到Microsoft Visual Studio 2008,在Linux上构建和运行良好.

我遇到时间例程的麻烦,我的Linux代码看起来像这样:

#include <sys/types.h>
#include <sys/time.h>

typedef long long Usec;

inline Usec timevalToUsec(const timeval &tv)
{
  return (((Usec) tv.tv_sec) * 1000000) + ((Usec) tv.tv_usec);
}
Run Code Online (Sandbox Code Playgroud)

但编译器在sys/time.h头文件上失败:

fatal error C1083: Cannot open include file:
      'sys/time.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我将include更改为只是time.h我得到一个不同的错误timeval未定义:

error C4430: missing type specifier - int assumed.
      Note: C++ does not support default-int
Run Code Online (Sandbox Code Playgroud)

这是由于timeval没有定义.

包含time.h而不是sys/time.h正确,如果是,我在哪里可以获得struct timevalMicrosoft Visual Studio 2008中的定义?

Dav*_*rtz 5

winsock2.h头填充将拉struct timeval因为它像调用中使用select.