我正在调试MacOSX中的程序,我需要这个程序认为我们比操作系统给出的程序晚了一年.
我无法改变操作系统的时间,因为我需要在正确的时间内同时运行第二个程序.我可以修改第一个程序的代码,每次从操作系统中获取时间时添加一年,但代码太大而无法做到; 我不想使用这个解决方案.
我曾经听说过Unix中有一个命令来运行假冒/模拟时间的程序.你知道吗?
我还没有尝试过,但libfaketime声称可以满足您的需求。
引自网站:
例如,我们希望“date”命令报告我们伪造的时间。为此,我们可以使用以下命令行:
Run Code Online (Sandbox Code Playgroud)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
Run Code Online (Sandbox Code Playgroud)