gettickcount linuxへの移植
gettickcountは、システム起動から呼び出しまでの時間を取得するため、linuxでclock_を使用できます.gettime関数の代わりに
clk_idパラメータの説明:
CLOCK_REALTIME:システムのリアルタイム時間は、システムのリアルタイム時間の変化に伴って変化する.すなわち、UTC 1900-1 0:0から計時が開始される.
CLOCK_MONOTONIC:システム起動の時点から計時を開始し、システム時間がユーザーによって変更される影響を受けない
CLOCK_PROCESS_CPUTIME_ID:本プロセスから現在のコードシステムCPUまでの時間
CLOCK_THREAD_CPUTIME_ID:本スレッドから現在のコードシステムCPUまでの時間
次はコードで、手元に環境がなければテストできませんが、大体そうです.
struct timespect*tpは現在の時間を格納するために使用され、その構造は以下の通りである.
unsigned long GettickCount()
{
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC,&ts);//ここでは戻り値を判断できます
retun (ts.tv_sec*1000 + ts.tv_nsec/(1000*1000))
}
int clock_gettime(clockid_t clk_id, struct timespect *tp);
clk_idパラメータの説明:
CLOCK_REALTIME:システムのリアルタイム時間は、システムのリアルタイム時間の変化に伴って変化する.すなわち、UTC 1900-1 0:0から計時が開始される.
CLOCK_MONOTONIC:システム起動の時点から計時を開始し、システム時間がユーザーによって変更される影響を受けない
CLOCK_PROCESS_CPUTIME_ID:本プロセスから現在のコードシステムCPUまでの時間
CLOCK_THREAD_CPUTIME_ID:本スレッドから現在のコードシステムCPUまでの時間
次はコードで、手元に環境がなければテストできませんが、大体そうです.
struct timespect*tpは現在の時間を格納するために使用され、その構造は以下の通りである.
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds */
};
unsigned long GettickCount()
{
struct timespec ts;
clock_gettime(CLOCK_MONOTONIC,&ts);//ここでは戻り値を判断できます
retun (ts.tv_sec*1000 + ts.tv_nsec/(1000*1000))
}