三日先のファイル

Windows95のクライアントがファイルサーバ上に作成したファイルの更新時刻が72時間先になるという奇妙な現象が発生している。
Windows95のDOS窓で動作しているプログラムがsambaサーバが開放しているディレクトリ上にファイルを開き、データを書き込んだ後にファイルを閉じると何故か更新日時がちょうど三日後になってしまう。
単にファイルを開いて閉じるだけなら更新日時は狂わないのだが、開いたファイルになんらかのデータを書き込んで閉じると更新日時が狂ってしまっていることが判明した。
最初に疑ったのはクライアントPCのシステム時刻の狂いだが、これはほぼ正しい時刻を示していた(「ほぼ」というのはntpでの同期を行っていないので数十秒程度の狂いがあったため)。
次にsambaの設定かとも思ったが、問題のファイルを他のPCのエディターで開いて上書き保存をすると更新日時は正しい日時になるので、samba絡みとも思えずクライアント側のプログラムになんらかの問題がある可能性が高い。

プログラムはC言語で書かれているもので、ファイルへのアクセスは
fopen()でファイルを開いて
fprintf()でデータを書き込み
fclose()でファイルを閉じているという一見なんでもない処理をしているだけだ。
データの書き込みを行っていない場合(fopen()→floce()のみをコールし、ファイルサイズが0バイトの場合)は狂いが生じていないので、fprintf()をコールした際におかしな挙動を示していると思われる。
でもこれだけで日時が72時間も狂うことなんかあるのだろうか?
別に下の階で大きなブラウン管TVの電源が入っているわけでもないし、そもそもそれだと過去に行ってしまう筈(爆)。
うーん、不思議だ・・・・・

←クリックしてくれると嬉しいです。
PR

2 comments to this article

  1. 千歳

    on 2012 年 2 月 24 日 at 11:04 AM -

    おかしいですね。42インチのTVがどこかにあるハズなんですけど(違)

  2. tan

    on 2012 年 2 月 24 日 at 11:11 AM -

    >千歳さん
     もしかすると私の知らない場所に隠されているのかもしれません(爆)

コメントを残す