libfaketime 和 Mac OS,LD_PRELOAD

libfaketime 和 Mac OS,LD_PRELOAD

运行 Mac OS 10.7.2 并尝试运行libfaketime但什么也没发生。我完全按照指示安装并运行,只是时间和日期保持与系统中设置的完全一致?还有其他人能够在 OSX 上成功运行吗?

$ date
Mon Jan 30 21:05:09 CST 2012
$ LD_PRELOAD=./libfaketime.so.1 FAKETIME="-15d" date
Mon Jan 30 21:05:32 CST 2012

答案1

在 Mac OS 上使用 DYLD_INSERT_LIBRARIES 而不是 LD_PRELOAD。您可能还需要设置 DYLD_FORCE_FLAT_NAMESPACE。例如

DYLD_INSERT_LIBRARIES=./libfaketime.so.1 DYLD_FORCE_FLAT_NAMESPACE=y FAKETIME="-15d" date

答案2

如果你像这样编译库:

gcc -shared -fPIC mylib.c -o mylib.so

您可以创建环境变量:

export DYLD_INSERT_LIBRARIES=./mylib.so
export DYLD_FORCE_FLAT_NAMESPACE=y

然后使用新加载的库执行:

./program

观察:

在 macOS High Sierra (v 10.13.1) 上工作

相关内容