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

[FDclone-users:00188] Re: 巨大ファイルの扱い



小松です。

Shoichi.Shiota> 小松さんの環境がわからないのでなんですが、
Shoichi.Shiota> > st_sizeがoff_t型(32bit)になっているのが原因のようですが、
Shoichi.Shiota> ってのは、環境に依存するのではないかと。
Shoichi.Shiota> (st_size が 32 bit かどうかの部分です)
Shoichi.Shiota> 原因が bit 数の壁にあるのはそう思います。
うちの環境はx86のLinuxですが、sys/types.hによると
off_tは32bitのようです。何かのマクロを使うと
 typedef off64_t off_t;
となり、64bitになるようです。この辺はもう少し調べてみます。

Shoichi.Shiota> $ Makefile.tmp の CFLAGS に -D_LARGE_FILES を追加
今手元にあるSolaris機でこれを試した結果では、
 (gdb) print sizeof(off_t)
 $1 = 4
 (gdb) print sizeof(off64_t)
 $2 = 8
でした。環境によってはうまくいかないみたいです。

Shoichi.Shiota> 999999999 の表示は、わざとそうされているようなので
Shoichi.Shiota> これで終了。
表示可能桁を超えるとこうなります。昔は違う表現だったように
記憶していますが…

--------
Hironao Komatsu <s1100089@u-aizu.ac.jp>