Метод сна и часов - PullRequest
       1

Метод сна и часов

0 голосов
/ 12 мая 2018
int main(void){

    int start = clock();
    sleep(5);
    int end = clock();

    printf("%d", (end - start));
    return 0;
}

Когда я выполняю этот код в Ubuntu, я получаю результат 30; тем не менее, я приостановил процесс на 5 секунд методом sleep (). Почему результат равен 30?

Как я могу вычислить время приостановки процесса?

1 Ответ

0 голосов
/ 12 мая 2018

Функция clock() возвращает количество процессорного времени, использованного с момента запуска процесса. Чтобы получить число в секундах, вы должны разделить на константу CLOCKS_PER_SEC.

В большинстве случаев при вызове в спящий режим процессорное время не используется или очень мало (я всегда получаю ноль обратно).

Вы можете использовать time() для получения секунд времени настенных часов:

#include <stdio.h>
#include <time.h>
#include <unistd.h>

int main(void) {

  time_t start = time(NULL);
  sleep(5);
  time_t end = time(NULL);

  printf("%.1f\n", difftime(end, start));

  return 0;
}

Для временных интервалов gettimeofday() может быть более полезным, поскольку дает микросекундную гранулярность, а не секунды, как time().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...