2011-11-28 43 views
4

我有一個移植到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定義是什麼?

回答

5

winsock2.h頭部填充將拉入struct timeval,因爲它在諸如select之類的調用中使用。

3

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