Unixファイルのctimeを設定するにはどうすればよいですか?
(Pythonの観点から答えたほうがいいと思います。標準のPythonでそれを行う方法がない場合は、Cでも問題ないと思います。)
(注:os.utimeを使用してファイルのatimeとmtimeを設定できることは知っています。ctimeの設定に興味があります。)
(注2:POSIXoid Unixで機能する答えがあることを願っていますが、そうでない場合は、DarwinとUbuntuに興味があります。)
ファイルのctimeを現在の時刻に設定するのは比較的簡単です。mtimeを変更するか、パーミッションビットを反転するか、ハードリンクを作成するだけです。AFAIKでは、システムコールAPIを直接使用して、ファイルのctimeを任意の値に設定することは不可能です。
ルートアクセス権がある場合は、システム時刻を設定し、ファイルに対して何かを実行してctimeを現在の時刻に設定してから、システム時刻を元に戻すことができます。また、ディスク上のiノードデータ構造をビットでいじることもできます。しかし、これらは両方とも、詳細に説明する必要があるとは思わない多くの理由から、本当に悪い考えです。