2012-03-04 32 views
2

私は可能な限り、窓でも動作するglibを通してマイクロ秒で時間を得ようとしています。glib、移植可能で可読な時間

私のアプローチ:予想通り

 char buff[256]; 
    GTimeVal mtime; 
    g_get_current_time(&mtime); 
    strftime(buff, sizeof(buff), "%Y-%m-%d %H:%M:%S.%%06u", mtime); 
    printf("%s\n", buff); 

...動作しません。

これを行うにはどうすればよいですか?

ありがとうございました。

は、[編集] 第二の例:

GTimeVal start, finish; 
g_get_current_time(&start); 

//some operation 

g_get_current_time(&finish); 

GTimeVal el; 
el.tv_sec = finish.tv_sec - start.tv_sec; 
el.tv_usec = finish.tv_usec - start.tv_usec; 
if (el.tv_usec < 0) 
{ 
    el.tv_usec += 1000000; 
    el.tv_sec--; 
} 

char st[24] = {0}; 
char qt[32] = {0}; 
if (counter) 
{ 
    sprintf(st, "%s%d%s", " Finded ", counter, " results"); 
    sprintf(qt, " %u.%06u %s", (guint)el.tv_sec, (guint)el.tv_usec, " sec"); 
} 
+0

あなたの期待は何ですか?それはあなたの期待とは何か異なっていますか? – ptomato

+0

私は、操作(および他の目的)に必要な時間のポータブルで、信頼性の高い正確な測定を得ることを単純に試みています。私はLinuxでそれを得ることができますが、Windowsでも(gtkで)これは正しく動作しないようです。これは本当ですか、私のプログラミングは十分ではありませんか? –

+1

あなたは_what_が機能していないと言う必要があり、_whiteは動作していないことを知っています。 2番目のコード例では、最初のコード例以外は表示されません。これらは 'g_get_current_time()'を使用する2つのコードサンプルです。 – ptomato

答えて

3

移植のためのあなたの最高のショットがGDateTimeと関連する関数のために、glibので廃止されGTimeValを、ドロップすることであってもよいです。 (g_date_time_format()の代わりにstrftime()g_date_time_new_now()の代わりにg_get_current_time())。

+0

'g_date_time_format()'でマイクロ秒を印刷するにはどうすればいいですか? – tversteeg

関連する問題