2010-11-03 155 views
2

我正在使用記錄儀在Momnetics以下格式關於以毫秒爲單位

2010-11-02 14打印時間用C語言在QNX平臺上工作得到時間:45:15.000

我能夠獲取日期,小時,分鐘和秒使用

time(&timeSpec); 
struct tm gmt; 
int iSysTimeSec = timeSpec; 
gmtime_r((time_t *)&iSysTimeSec, &gmt); 
sprintf(&MsgStamp[0], SYS_MSG_STAMP_PRINTF_FORMAT, gmt.tm_year+1900, gmt.tm_mon + 1, gmt.tm_mday, gmt.tm_hour, gmt.tm_min, gmt.tm_sec, iSysTimeMs); 

問題是如何使用QNX Momentics獲得毫秒粒度。

我試圖使用QNX特定的毫秒數來獲得顆粒度 int iSysTimeMs =((ClockCycles()* 1000)/ SYSPAGE_ENTRY(qtime) - > cycles_per_sec)%1000;

但我想做這個POSIX的方式,使它是便攜式。我們如何做到這一點?

謝謝! Venkata

回答

2

在QNX6中您可以使用clock_gettime使系統允許的最大粒度 。

struct timespec start; 
clock_gettime(CLOCK_REALTIME, &start); 
+0

u能請詳細說明如何獲得毫秒,我看到只有幾秒鐘和納米秒。 – Venkata 2010-11-03 10:31:05

+1

將納秒除以1000如何? – DevSolar 2010-11-03 10:34:06

+1

@DevSolar:...會產生微秒,而不是毫秒。 @Venkata:你是認真的!? 'millisec = nanosec/1000000;' – Clifford 2010-11-03 11:20:22

0

gettimeofday()系統調用將返回保持當前的Unix時間(秒)和屬於當前第二微秒的數量的結構。

要得到微秒總數:

struct timeval tv; 
gettimeofday(&tv, NULL); 
u_int64_t now = tv.tv_sec * 1000000ULL + tv.tv_usec; 
+0

我如何適合你的喉嚨我的問題14:45:15.000,在這裏,我如何取代最後三個零,我必須填寫微秒 – Venkata 2010-11-03 10:33:02

相關問題