0

こんにちは、シェルによってフォークされたアプリケーションのシステム時間とユーザー時間を取得しようとしています。どのような時間が得られているのかわかりません、秒ですか?ミリ秒?誰か知っていますか?

printf("System time: %ld.%06ld sec\n",usage.ru_stime.tv_sec, usage.ru_stime.tv_usec);
printf("User time:   %ld.%06ld sec\n\n",usage.ru_utime.tv_sec, usage.ru_utime.tv_usec);

これは私が得た結果のサンプルです。時間は秒単位ですが、よくわかりません

#   PID Name    System Time User Time                 
*****************************************************
1   12420   firefox 0.148009 sec    0.816051 sec
2   12429   gimp    0.444027 sec    2.512157 sec
3   12442   clear   0.000000 sec    0.000000 sec
4

1 に答える 1

1

秒もミリ秒もマイクロ秒も取得しません-取得しstruct timevalます. これは 2 つのフィールドで構成される構造体です。tv_sec完全な秒を指定し、tv_usecマイクロ秒を指定します。後者の値は 100 万未満です (したがって、常に数分の 1 秒です)。

したがって、この API がサポートする解像度はマイクロ秒です。printステートメントで使用する必要がある単位は秒です-したがって、すでに正しく行っています。

于 2009-09-28T01:38:47.220 に答える