struct timeval start, end, duration;
gettimeofday(&start, NULL);
res = curl_easy_perform(curl);
gettimeofday(&end, NULL);
timersub(&end, &start, &duration);
tm* startTime = localtime(&start.tv_sec);
tm* endTime = localtime(&end.tv_sec);
char buf[64];
strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", startTime);
char buf2[64];
strftime(buf2, sizeof(buf2), "%Y-%m-%d %H:%M:%S", endTime);
ofstream timeFile;
timeFile.open ("timingSheet.txt");
timeFile << fixed << showpoint;
timeFile << setprecision(6);
timeFile << "Duration: " << duration.tv_sec << "." << duration.tv_usec << " seconds \n";
timeFile << "Start time: " << buf <<"." << start.tv_usec << "\n";
timeFile << "End time: " << buf2 <<"." << end.tv_usec << "\n";
timeFile.close();
Когда я запускаю этот код я получаю этот выход:несовпадения по времени
Duration: 3.462243 seconds
Start time: 2012-05-15 17:14:07.432613
End time: 2012-05-15 17:14:07.894856
Что озадачивает меня в том, что значение длительности не совпадает с временем начала и окончания. Две даты отличаются только микросекундами. Для этого есть причина?
Спасибо!
Что происходит в 'timersub()'? –
timersub() не должен влиять ни на начало, ни на конец. Это просто функция для получения разницы в два временных интервала и размещения этих значений в длительности. – Dave
Пожалуйста, введите код. Если он не изменяет 'start' или' end', он должен неправильно вычислять 'duration'. –