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

Dav*_*lla 6 unix

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

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

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

Sha*_*hin 5

我还没有尝试过,但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
Run Code Online (Sandbox Code Playgroud)

假设 lib 像宣传的那样工作,您可以使用以下方法诱使您的程序认为它提前一年运行:

LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="+1y" ./your_program
Run Code Online (Sandbox Code Playgroud)