Зависимы ли функции времени C от системных часов? - PullRequest
0 голосов
/ 09 сентября 2011

Это в особенности относится к gmtime() функции в C, хотя, если она получит время по-другому по сравнению с другими функциями времени, которые я хотел бы знать.

Например, если я изменю системное время, это испортит всевверх?Это будет неправильное время?

Ответы [ 4 ]

1 голос
/ 09 сентября 2011

В Windows функция time вызывает GetSystemTimeAsFileTime и выполняет несколько простых вычислений для преобразования ее в формат времени CRT (секунды с января 1970 года по UTC).Другие функции времени (такие как gmtime) не работают напрямую с системным временем;они просто конвертируют между различными форматами - часто один получается изначально с помощью вызова time.

1 голос
/ 09 сентября 2011

Да. они зависят от значения системных часов. Если вы измените системные часы, вы получите другие результаты, так как это единственный способ получить текущее системное время (если вы не используете что-то вроде NTP, но вы не найдете его ни в одной стандартной библиотеке C / C ++).

0 голосов
/ 05 октября 2016

Да, некоторые из них, один из которых я могу вспомнить, это функция Posth Pthread. Pthread_cond_timedwait () не будет работать, если системные часы не инициализированы. Вам необходимо понять нюансы того, как ведут себя все функции и как они могут зависеть от времени и локали системы, а также дрейфа часов вашей системы ...

0 голосов
/ 09 сентября 2011

Как следует из подписи и названия:

struct tm * gmtime ( const time_t * timer );

Эта функция преобразует time_t в tm как время UTC. Помните, что значение, указанное таймером, используется для заполнения структуры tm значениями, представляющими соответствующее время, выраженное в формате UTC (или часовой пояс GMT).

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


int main ()
{
  time_t rawtime;
  struct tm * ptm;

  time ( &rawtime );

  ptm = gmtime ( &rawtime );

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