を使用する C プロセスに LFS を追加する必要がありますfseek()
。gcc と glibc は、それぞれバージョン 3.2.3 と 2.5 です。
次の変更を行いました。
- メイクファイルに追加され
CFLAGS += -D_FILE_OFFSET_BITS=64
ました。 - への呼び出しをへの呼び出しに置き換えました
fseek()
(fseeko()
MSVC6 のサポートも必要ですが、一度に 1 ステップずつ)。 - 2 番目の引数の型を に変更しました
off_t
。sizeof()
変数では 8 が返されます。
main()
これは、DLP とその出力を超えることができるのと同じくらい良いサンプルです。
fd = fopen("large_file", "rb");
off_t offset = 1ULL << 32;
rc = fseeko(fd, offset, SEEK_SET);
rc = -1 sizeof(offset)=8 errno=22 offset=2147483648