Как заморозить часы для определенной задачи?

Например,

# clock-pause
# touch a
# touch b
# convert -draw `date` text_draw.gif
# clock-resume

Или, просто

# freeze-exec sh -c 'touch a; touch b; convert -draw `date` text_draw.gif'

Ожидаемым результатом являются метки времени a и b, и текст, оттянутый к изображению, является точно тем же.

Действительно ли это возможно?

0
задан 27.12.2010, 11:25

3 ответа

На Linux могло бы быть возможно записать общую библиотеку, которая переопределяет time(), gettimeofday(), и clock_gettime() использовать статические значения и добавить библиотеку к $LD_PRELOAD, который одурачил бы много программ.

Обновление: Кто-то реализовал это как datefudge .

2
ответ дан 24.11.2019, 02:39

Вы не можете остановить системные часы. Однако можно сделать это:

now=$(date +%s.%N)
# $now now contains a Unix timestamp at nanosecond precision
touch -d @$now a b c
convert -draw "$(date -d @$now)" text_draw.gif
2
ответ дан 24.11.2019, 02:39

Можно сделать touch a b. Можно также сделать touch a; touch --reference=a b.

1
ответ дан 24.11.2019, 02:39

Теги

Похожие вопросы