私はSOからこの答えを得ました:
https://stackoverflow.com/a/2409054/997112
timeval 構造体をわかりやすい形式で出力できるようにします。コンパイラの警告が表示されたため、次"%s.%06d"
のように変更する必要がありました。"%s.%06ld"
void printTimeval(struct timeval& tv){
time_t nowtime;
struct tm *nowtm;
char tmbuf[64], buf[64];
nowtime = tv.tv_sec;
nowtm = localtime(&nowtime);
strftime(tmbuf, sizeof tmbuf, "%Y-%m-%d %H:%M:%S", nowtm);
snprintf(buf, sizeof buf, "%s.%06ld", tmbuf, tv.tv_usec);
}
ただし、有効な時間を過ぎると何も印刷されません。
関数を呼び出す前に、渡した timeval の秒数を確認したところ、1404120855 が返されたので、timeval が正しく、問題は関数にあると確信していますか?