Programm in anderem Zeitkontext kaufen lassen

Jan-Benedict Glaw jbglaw at lug-owl.de
Sat Feb 28 10:58:48 CET 2009


On Fri, 2009-02-27 18:56:50 +0100, Thomas Findeisen (npl at npl.de) <npl at npl.de> wrote:
> Gibt es eine Möglichkeit ein Programm in einer anderen Zeit laufen
> zu lassen? Also beispiels- weise mit dem aktuellen Datum minus 4
> Wochen?
> 
> Die einzige Möglichkeit die mir eigentlich einfällt ist eine
> virtuelle Maschine, aber vielleicht geht das ja auch einfacher und
> mit Bordmitteln...
> 
> In bestimmtem Rahmen ist es ja beispielsweise durch die
> Zeitzonen/Time-Umgebungsvariablen möglich... aber das ist nur
> maximal 24 Stunden +-.

Die Zeitzonen-Einstellungen zu ändern bringt nichts, oder sollte
nichts bringen. Es ist ja immernoch dieselbe Zeit, nur anders
ausgedrückt.

Die Frage ist doch: Wie kommt ein Programm an die Uhrzeit? Dazu gibt
es zwei (reguläre) Antworten--und etwas Gefummel:

  * time(2) ist ein syscall, der die Epoch-Zeit zurückliefert.
  * gettimeofday(2) ist ebenfalls ein Syscall, der zusätzlich zur
    Epoch-Zeit noch Microsekunden liefert.

Als dritte Variante kommt in Betracht, vollkommen unportable Wege zu
nutzen, um die Zeit zu ermitteln.

In allen "normalen" Fällen wird es also klappen, die Zeit zu
"verbiegen", indem man sich genau zwischen library call und system
call zwängt. Ergo schreibe man eine kleine lib (das sind nur ein paar
Zeilen) die mit LD_PRELOAD geladen wird. Diese nutzt die ganz
regulären Funktionen und subtrahiert dann die gewünschte Anzahl von
Sekunden von der Epoch-Zeit.

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw at lug-owl.de              +49-172-7608481
Signature of: They that give up essential liberty to obtain temporary safety,
the second  : deserve neither liberty nor safety.  (Ben Franklin)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lug-owl.de/pipermail/linux/attachments/20090228/352c02aa/attachment.sig>


More information about the Linux mailing list