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

发布于 2024-12-11 03:55:10 字数 204 浏览 0 评论 0原文

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

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

我曾经听说 Unix 中有一个命令可以使用伪造/模拟时间来运行程序。 你知道吗?

I am debugging a program in MacOSX,
and I need that this program thinks we are one year later than the one given by the operating system.

I cannot change the time of the operation system, because I need to run a second program concurrently with the correct time.
I could modify the code of the first program to add one year each time it gets the time from the operation system, but the code is too big to do that; I prefer not to use this solution.

I heard once that there is a command in Unix to run a program with a fake/mocked time.
Do you know about it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

染火枫林 2024-12-18 03:55:10

我还没有尝试过,但 libfaketime 声称可以满足您的需求。

引自网站:

举个例子,我们想要“date”命令来报告我们伪造的时间。为此,我们可以使用以下命令行:

用户@主机>日期
2007 年 11 月 23 日星期二 12:01:05 欧洲中部夏令时间

用户@主机> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" 日期
2007 年欧洲夏令时间 11 月 8 日星期一 12:01:12

假设该库按照宣传的那样工作,您可以使用以下命令欺骗您的程序,使其认为它已提前一年运行:

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

I haven't tried it, but libfaketime claims to do what you need.

Quoted from the website:

As an example, we want the "date" command to report our faked time. To do so, we could use the following command line:

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

Assuming the lib works as advertised, you can trick your program into thinking it was running a year ahead using:

LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="+1y" ./your_program
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文