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では、LD_PRELOADの代わりにDYLD_INSERT_LIBRARIESを使用してください。 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)で作業する

関連情報