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

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



 しらいです。

In Message-Id <OF855C8B16.EF4CCF36-ON49256F5E.001053A3@tky.lightwell.co.jp>
        SHIOTA Shoichi <Shoichi.Shiota@lightwell.co.jp>さんwrites:
> 潮田です。

> > フォーマット指定子の修正を忘れていました。
> > 正しく patch をあてると 4GB 以下のファイルは、サイズが正しく
> > 表示されました。

 "%d" だと -1 と表示されて "%u" だと正しく表示されるという
ことは、型の bit 数以外にも何かが違っているんでしょうね。
 普通 off_t は signed で size_t は unsigned です。ところが、
AIX では off_t が 64bit 幅で size_t が 32bit 幅というちぐは
ぐなことになっているので、size_t を off_t にキャストした時点
で符号処理がおかしくなってしまうんでしょう。
 ということは、off_t 幅と size_t 幅とでそれぞれ独立に幅指定
子を用意しないといけないということですかね。面倒な。


> > 2GB over のファイルは、
> > 
> > 2g                          999999999 04-12-02 11:38
> > 
> > と表示されるので、もう一声何か必要でしょうか。

 これは正常な処理結果ですよ。表示桁数を越えてしまったので、
その桁数で表現可能な最大数を表示している訳です。


> これはこれで本当ですが、もっと違う部分に影響が出ていることに
> 気がつきました。
> fd 最下行に、カーソルのあるファイルの情報が表示されますが、
> ここのファイルサイズが、常に -1 になっていました。

 サイズ表示はどっちも同じ関数を使っているので、一方だけおか
しくなる筈はないんですけどね。違うのは、一覧が 9 桁の表示桁
数を持っているのに対して最下行は 8 桁だという点だけです。
 browse.c の snprintf2 で桁数を指定している width の値を 8
や 9 といった即値で置換えてやると、どっちも正しく表示された
りどっちも -1 になったりするんでしょうか?
 少なくとも幅指定の値は対象の数値に対して bias をかけたりは
しない筈なんですが。

                                               しらい たかし