Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Неправильно определяется время (функция strftime, язык C)

37K
02 марта 2011 года
Tolias28
48 / / 20.09.2010
Написал маленькую прожку для ведения лога подключения устройств к USB. Считывается буква диска и записывается дата со временем в файл, когда это произошло. И обнаружил такую маленьку трабл. Секунды почему-то неверно определяются. Постоянно выдает 58 секунд.

Вот кусок кода:
Код:
FILE *fb;
    if(fb=fopen("count_drives.log","a")){
        char *date_s;
        date_s=(char*)calloc(8,sizeof(char));
        if(date_s==NULL){
            fprintf(fb,"Error read time. Drive %s connected.",argv[1]);
            exit(1);
        }
        time_t rawtime;
        struct tm * timeinfo;
        time ( &rawtime );
        timeinfo = localtime ( &rawtime );
        //strftime(date_s,25,"%Y.%m.%d %H:%M:%S",timeinfo);
        strftime(date_s,25,"%Y.%m.%d %T",timeinfo);
        fprintf(fb,"%s Drive %s connected.\n",date_s,argv[1]);
        free(date_s);
    }
    fclose(fb);


А вот текстовый файл лога, поулченный в результате работы программы:

 
Код:
2011.03.02 20:39:58 Drive I:\ connected.
2011.03.02 20:39:58 Drive F:\ connected.
2011.03.02 20:40:58 Drive I:\ connected.
2011.03.02 20:42:58 Drive H:\ connected.


Почему постоянно оно записывает 58 секунд, даже если тогда может быть и 15, и 20 секунд? Специально на часы смотрел. Пробовал параметр %S и %T, но выходит одно и тоже :confused: Если сделать вот так:
strftime(date_s,25,"%T",timeinfo);
то секунды выводятся правильно. А вот в таком порядке, как в коде программы, почему-то не хочет:mad:
Помогите побороть этот глюк или мой недосмотр пожалуйста)
37K
02 марта 2011 года
Tolias28
48 / / 20.09.2010
ай поспешил я с вопросом. Уже сам нашел ошибку. Я массив объявил на 8 ячеек, в то время, как нужно минимум на 19)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог