私はValaでコードを書いていました。そこでは、最初にシステム時刻を取得し、次にファイルを作成し、次にそのファイルのタイムスタンプを取得しました。タイムスタンプは常にシステム時刻よりも早く、500〜1500マイクロ秒の間で意味がありませんでした。
次に、簡単なシェルスクリプトを作成しました。
while true; do
touch ~/tmp/fred.txt
stat ~/tmp/fred.txt|grep ^C
done
次の結果が得られます。
Change: 2013-01-18 16:02:44.290787250 +1100
Change: 2013-01-18 16:02:44.293787250 +1100
Change: 2013-01-18 16:02:44.296787250 +1100
Change: 2013-01-18 16:02:44.298787248 +1100
Change: 2013-01-18 16:02:44.301787248 +1100
Change: 2013-01-18 16:02:44.304787248 +1100
Change: 2013-01-18 16:02:44.306787248 +1100
Change: 2013-01-18 16:02:44.309787248 +1100
Change: 2013-01-18 16:02:44.312787248 +1100
Change: 2013-01-18 16:02:44.315787248 +1100
ご覧のとおり、小数点以下の最初の3桁(ミリ秒)は期待どおりに増加しているので問題ないように見えますが、4桁目以降は正しく表示されません。4桁目から9桁目は、代わりにゆっくりとしたカウントダウンを行っているようです。ext4は最大ナノ秒の精度をサポートしているので、これには何か理由がありますか?アクセスタイムスタンプと変更タイムスタンプは同じように動作します。