[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00512] Re: FDclone でファイルサイズが 0 と表示される



 しらいです。

In Message-Id <OF5ED4D0F7.7BAEFF09-ON4925715B.00016F5B@tky.lightwell.co.jp>
        SHIOTA Shoichi <Shoichi.Shiota@lightwell.co.jp>さんwrites:
> 潮田です。

> >  んー、おかしいですねー。ちょっと patch を作り直してみたの
> > で、今度のはどうでしょう?
> 残念ながら、今回も変化がみえません。

 別のところの AIX 5.2 では大丈夫だったそうなんですが、何が
違うんでしょうか?


> どれか、途中の値を出力させましょうか。
> (どこで、何をと指定していただければ可能です)

 では [FDclone-users:00509] 相当の printf debug をしてみて
下さい。
 mask の値は ((unsigned long)(~(unsigned long)0)) なので、
これが一体どんな値になっているのやら。ここでつまずくようだ
と他にもあちこちでおかしなことになりそうですね。


> ところで、先のメールに書きました、最下行でのファイルサイズの
> 表示が、 2.04? の時と今とで異なる件は、仕様どおりでしょうか。

 2.04c までは off_t 専用の表示関数を持っていましたが、2.05
から汎用の printf 関数にまとめてしまっています。
 この時、AIX 環境では off_t を無理矢理 long で受けてしまっ
ているので、結果的には巨大ファイルのサイズが正しく表示出来な
くなっています。
 これは、AIX が long long を扱えることを compile 時に判断出
来ないためなので、AIX 用には HAVELONGLONG を define してやる
ことで回避可能です。

 このことには [FDclone-users:00504] でも触れていますが、今
回の一連の検証はこの回避策以外の対応を模索しているんです。
 AIX 以外にも long long を扱えないと思い込んでしまっている
環境があるかも知れませんし、AIX 4.0 以前は long long 対応状
況が不明なので HAVELONGLONG では対応出来ません。
 なので、HAVELONGLONG を指定しない場合にでも、最低限それら
しい表示になるべく努力している訳なんですが、それを「仕様」と
言われると辛いところですね。
 本来の仕様としては、飽くまでも ls と同じ値が表示されなくて
はなりません。

                                               しらい たかし