如何在Linux中临时设置时间

299*_*her 6 linux unix time c

我正在测试一些代码,其中使用当前时间作为种子生成的一些随机数

sand(时间(0))

我希望每次运行时都能得到相同的随机数。所以我想在运行程序之前暂时将当前时间的值设置为某个预定义的值。并且请不要要求我暂时删除随机数,因为它非常重要。

另外,我没有 root 访问权限,因此无法使用该date命令或其编程等效命令设置日期/时间。

Bat*_*hyX 7

使用faketime

faketime '2013-03-14 08:25:30' ./your_program
Run Code Online (Sandbox Code Playgroud)

如果您不是 root,您可以从您的发行版中手动下载该程序。例如,如果您使用使用 APT 的 Debian 衍生版本:

aptitude download faketime
mkdir /tmp/faket/ dpkg-deb --extract faketime*.deb /tmp/faket
cp /tmp/faket/usr/bin/faketime ~
cp /tmp/faket/usr/lib/faketime/* ~
cd
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:."
./faketime '2013-03-14 08:25:30' ./your_program
Run Code Online (Sandbox Code Playgroud)