我正在调试MacOSX中的程序, 我需要这个程序认为我们比操作系统给出的程序晚了一年。
我无法更改操作系统的时间,因为我需要在正确的时间内同时运行第二个程序。 我可以修改第一个程序的代码,每次从操作系统中获取时间时添加一年,但代码太大而无法做到;我不想使用这个解决方案。
我曾经听说过Unix中有一个命令可以运行假冒/模拟时间的程序。 你知道吗?
答案 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