
Linux で時間を設定する方法は次のとおりです。
1 秒は 10 秒と定義されます (10 秒 = 自分の時間の 1 秒)
そこで実行されるすべてのプロセスを 10 倍高速化するようにします。そのため、sleep(1)
実際の時間は 0.1 秒になります。
どうやってそれを達成するのでしょうか?
答え1
コマンド(シェルとそのすべての子を含む)を任意の高速クロック周波数で実行できますwarp
。ast-openパッケージ。LD_PRELOAD を使用するため、setuid または setgid または (現在では比較的まれですが) 静的にリンクされたプログラムでは動作しません。ワープマニュアルページ:
warp [ オプション ] date [ コマンド [ 引数 ... ] ]
ワープ時間関連のシステムコールを傍受し、時間を変更することで、異なる時間枠で動的にリンクされたコマンドを実行します。指示次の式を使用します:
時間' = 時間 + ワープ + (時間 - ベース) * (係数 - 1)
どこワープ日付は今です、ベースデフォルトでは日付であり、要素デフォルトでは 1 です。
オプション
-b, --base=日付
基準日または開始日を設定する日付一連のテストを繰り返す場合に便利です。デフォルト値は日付です。
-f, --factor=係数
歪んだ時計を刻むように設定する要素実際の秒数あたりの秒数。デフォルト値は 1 です。
ワープ実行する指示オプションの引数付き、またはシュもし指示省略されます。指示同じ時間枠内で歪んでいる。時間は指示およびその子供たちの割合要素システムクロックを倍にします。指示またはその子はより新しく表示されます日付に指示およびその子ですが、実際にはワープされていないコマンドの通常の時間枠内になります。