установка системного времени с помощью функции библиотеки c - PullRequest
2 голосов
/ 26 мая 2010

Я могу получить системное время, используя struct tm и time (), localtime (), asctime (). Но мне нужна помощь о том, как я могу установить время системы, используя программу c.

1 Ответ

4 голосов
/ 27 мая 2010

Если вы не хотите выполнять команду оболочки, вы можете (как вы упомянули) использовать settimeofday, я бы начал с чтения страницы MAN или поиска некоторых примеров

вот пример:

#include <sys/time.h>
#include <stdio.h>
#include <errno.h>

int main(int argc, char *argv[])
{
    struct timeval now;
    int rc;

    now.tv_sec=866208142;
    now.tv_usec=290944;

    rc=settimeofday(&now, NULL);
    if(rc==0) {
        printf("settimeofday() successful.\n");
    }
    else {
        printf("settimeofday() failed, "
        "errno = %d\n",errno);
        return -1;
    }

    return 0;
}

Бесстыдно вырванный. Из документации IBM , структура struct timeval содержит количество секунд (как long) плюс количество микросекунд (как long) с 1 января 1970 года, 00 : 00: 00 UTC (время эпохи Unix). Таким образом, вам нужно будет рассчитать эти числа, чтобы установить время. Вы можете использовать эти вспомогательные функции , чтобы лучше справляться со структурой timeval.

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