On Fri, 2009-02-27 18:56:50 +0100, Thomas Findeisen ([email protected]) <[email protected]> 
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      [email protected]              +49-172-7608481
Signature of: They that give up essential liberty to obtain temporary safety,
the second  : deserve neither liberty nor safety.  (Ben Franklin)

Attachment: signature.asc
Description: Digital signature

-- 
Linux mailing list [email protected]
subscribe/unsubscribe: http://lug-owl.de/mailman/listinfo/linux
Hinweise zur Nutzung: http://www.lug-owl.de/Mailingliste/hints.epo

Antwort per Email an