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

问题描述:

我有一个移植到Microsoft Visual Studio 2008的应用程序,它可以在Linux上构建和运行。从Linux到Visual Studio 2008的移植时间API

我有时间程序麻烦,我的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); 
} 

但是,编译器对sys/time.h头文件失败:如果我改变包括对

fatal error C1083: Cannot open include file: 
     'sys/time.h': No such file or directory 

只是time.h我得到一个不同的错误timeval未定义:

error C4430: missing type specifier - int assumed. 
     Note: C++ does not support default-int 

这是由于timeval未被定义。

是包括time.h代替sys/time.h正确的,如果是这样,我在哪里得到在Microsoft Visual Studio 2008中的struct timeval定义是什么?

winsock2.h头部填充将拉入struct timeval,因为它在诸如select之类的调用中使用。

它存在,只是不在“sys/time.h”中。有趣的是,Timeval在Winsock2.h中。