2011-10-20 7 views
6

私はMacOSXのプログラムである をデバッグしています。私は、このプログラムは私たちがオペレーティングシステムから与えられたものより1年遅れていると思う必要があります。デバッグ、Unix。システムとは別の時間にプログラムを実行する

第2プログラムを正しい時間で同時に実行する必要があるため、オペレーティングシステムの時刻を変更することはできません。 オペレーティングシステムから時刻を取得するたびに1年追加する最初のプログラムのコードを変更できますが、コードが大きすぎて実行できません。私はこのソリューションを使用しないことをお勧めします。

偽/擬似時間を持つプログラムを実行するコマンドがUnixにあると聞いたことがあります。 あなたはそれについて知っていますか?

+1

もしそうするために、我々は、次のコマンドラインを使用することができます他のすべてが失敗すると、仮想環境内で実行し、その中で時間を設定することができます。最後のリゾートだが、それは大暴れだ。 –

答えて

4

私はそれを試していませんが、libfaketimeはあなたが必要とすることを主張します。ウェブサイトからの引用

:例として

は、私たちは、「日付」コマンドは、私たちの偽造時間を報告したいです。宣伝として、それは使用して先に年を実行していた考えに、あなたのプログラムをだますことができ、libの作品を想定し

[email protected]> date 
Tue Nov 23 12:01:05 CEST 2007 

[email protected]> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" date 
Mon Nov 8 12:01:12 CEST 2007 

LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="+1y" ./your_program 
+1

Mac OS Xは別のリンカーを使用していますが、環境変数は同じではないと思います。 DYLD_INSERT_LIBRARIESを試してください。 – unwind

+0

@unwind良い点! –

関連する問題