Задаю системное время вызовом stime.time_t t=1000000000;
int stime(time_t *t);char* g=ctime(&t);
printf("%s", g);результат - printf печатает измененное время, какое то там число 2001 года с данным t получается, а время в системе не меняется. Запускаю программу из под рута(сначала пишу su, потом ./имя_проги)
Про утилиту date знаю. Нужно обойтись без нее. Объясните, пожалуйста, что делаю не так. 12.05.08 уже сдавать
>Задаю системное время вызовом stime.OK, сейчас посмотрим.
> time_t t=1000000000; /* OK */
> int stime(time_t *t); /* WTF? Для кого придуман time.h? Вы прототипы всех функций вручную выписываете, а? */
> char* g=ctime(&t); /* И что? Получили строковое представление времени в переменной t */
> printf("%s", g); /* ...и распечатали */Где, собственно, изменение?
>результат - printf печатает измененное время, какое то там число 2001 года
Да вы что?!
man settimeofday
>
>Где, собственно, изменение?
>это как раз меня и интересует! я не понимаю как это реализовать. man settimeofday читал.
Здесь задал вопрос в надежде, что мне объяснят, как установить системное время.
то что я что-то делаю неправильно, я прекрасно понимаю, делал бы правильно - работало бы.Напишите, пожалуйста, как правильно.
вот сейчас еще попробовал :int main()
{
int settimeofday(1000);
return 0;
}прога компилируется, запускаю из под рута, но ничего не происходит.(время не меняется)
Понимаю, что туплю, но что нужно добавить?
Ещё раз привожу "ключевую" строку вашего кода:int stime(time_t *t);
Что делает эта строка в коде (в смысле, зачем вы её вписали в код, как вы её понимаете)?
Да, я знаю что это лаба, и поэтому не привожу готовое решение -- вы должны хоть чему-то научиться (судя по всему, вы не знаете базовых вещей в Си, Linux тут не причём).
int settimeofday(1000);lol, в ман даже и не заглянул небось
>int settimeofday(1000);
>
>lol, в ман даже и не заглянул небось+100, no chance чтобы такое скомпилировалось (даже не из-за количества параметров, а из-за int в непонятном месте)
>>int settimeofday(1000);
>>
>>lol, в ман даже и не заглянул небось
>
>+100, no chance чтобы такое скомпилировалось (даже не из-за количества параметров, а
>из-за int в непонятном месте)компилировалось, клянусь) но не работало. я уж понял почему.
в ман я и заглядывал и читал. все равно не мог понять, без примеров.
в программировании не силен, знаю. поэтому и попросил здесь совета.
но никто конкретного решения не написал.ну и фиг с ним, сам разобрался.
>
>int stime(time_t *t);
>
>Что делает эта строка в коде (в смысле, зачем вы её вписали
>в код, как вы её понимаете)?перед этим я же указал, что t=100000.
как я думал, эта строка устанавливает системное время в значение t.
>
>Да, я знаю что это лаба, и поэтому не привожу готовое решение
>-- вы должны хоть чему-то научиться (судя по всему, вы не
>знаете базовых вещей в Си, Linux тут не причём).это не лаба, это курсовой) да-да, на 3-м курсе в мирэа.
и я его уже сделал.
вот так:
struct timeval tv;tv.tv_sec = 1000;
tv.tv_usec = 1000;
return settimeofday (&tv, 0);
>>int stime(time_t *t);
>>
>>Что делает эта строка в коде (в смысле, зачем вы её вписали
>>в код, как вы её понимаете)?
>
>перед этим я же указал, что t=100000.
>как я думал, эта строка устанавливает системное время в значение t.А оказывается, что нет. Это всего-навсего прототип функции, который не вызывает ровно никаких действий. Возьмите Кернигана и Ричи и почитайте.