调试,Unix。运行与系统不同时间的程序

时间:2011-10-20 12:38:01

标签: unix

我正在调试MacOSX中的程序, 我需要这个程序认为我们比操作系统给出的程序晚了一年。

我无法更改操作系统的时间,因为我需要在正确的时间内同时运行第二个程序。 我可以修改第一个程序的代码,每次从操作系统中获取时间时添加一年,但代码太大而无法做到;我不想使用这个解决方案。

我曾经听说过Unix中有一个命令可以运行假冒/模拟时间的程序。 你知道吗?

1 个答案:

答案 0 :(得分:4)

我没有尝试过,但libfaketime声称可以做你需要的事。

引自网站:

  

例如,我们希望“date”命令报告我们的伪造时间。为此,我们可以使用以下命令行:

user@host> date
Tue Nov 23 12:01:05 CEST 2007

user@host> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" date
Mon Nov  8 12:01:12 CEST 2007

假设lib的工作方式与宣传的一样,您可以通过以下方式欺骗您的程序,使其认为它正在运行一年:

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