[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[FDclone-users:00347] Re: FDclone でファイルサイズが 0 と表示される
- Subject: [FDclone-users:00347] Re: FDclone でファイルサイズが 0 と表示される
- From: Takashi SHIRAI <shirai@unixusers.net>
- Date: Thu, 02 Dec 2004 23:05:58 +0900
しらいです。
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 をかけたりは
しない筈なんですが。
しらい たかし