C ++: Как бы я получил время Unix? - PullRequest
3 голосов
/ 13 июня 2010

Мне нужна функция или способ получить эпоху UNIX за секунды, очень похоже на то, как я могу в PHP использовать функцию времени.

Я не могу найти какой-либо метод, кроме time () в ctime, который, кажется, выводит только отформатированную дату, или функцию clock (), которая имеет секунды, но, кажется, всегда кратна 1 миллиону, ничего с любым разрешением ,

Я хочу измерить время выполнения в программе, я просто хотел вычислить разницу между началом и концом; Как программист C ++ может сделать это?

РЕДАКТИРОВАТЬ: time () и difftime разрешают разрешение только по секундам, а не мс или что-то слишком кстати.

Ответы [ 3 ]

2 голосов
/ 13 июня 2010

Если вы хотите получить профиль, я бы рекомендовал использовать getrusage . Это позволит вам отслеживать время процессора вместо времени настенных часов:

struct rusage ru;
getrusage(RUSAGE_SELF, &ru);

ru.ru_utime.tv_sec;  // seconds of user CPU time
ru.ru_utime.tv_usec; // microseconds of user CPU time
ru.ru_stime.tv_sec;  // seconds of system CPU time
ru.ru_stime.tv_usec; // microseconds of system CPU time
2 голосов
/ 13 июня 2010

time () должно работать нормально, используйте difftime для расчета разницы во времени. Если вам нужно лучшее разрешение, используйте gettimeofday .

Также, дубликат: Расчет истекшего времени в программе на C в миллисекундах

0 голосов
/ 12 августа 2018

Этот код должен работать для вас.

time_t epoch = time(0);


#include <iostream>
#include <ctime>
using namespace std;

int main() {
    time_t time = time(0);
    cout<<time<<endl;
    system("pause");
    return 0;
}

Если у вас есть какие-либо вопросы, не стесняйтесь комментировать ниже.

...