




Это зависит от:
Это также может помочь: http://www.boost.org/doc/libs/1_37_0/libs/iostreams/doc/faq.html#offsets
FAT32 позволяет использовать файлы размером до 4 ГБ минус 1. Но я согласен с предложением использовать NTFS.
В Win32 / 64 ReadFile и WriteFile могут записывать файлы размером более 4 ГБ. Позиционирование выполняется с помощью 64-битного значения _LARGE_INTEGER в SetFilePointerEx. Точно так же, чтобы получить размер файла, вам нужен GetFileSizeEx, а не базовый GetFileSize.
В NTFS единственное реальное ограничение - это размер тома. Если вы хотите проверить это, вы можете создать фиктивный файл с помощью командной строки:
fsutil file createnew [имя файла] [допустимая длина]
Пример:
fsutil файл createnew TestFile.bin 65536000000
Это должно создать файл размером 64 ГБ, если у вас есть том NTFS.
Будьте осторожны при сравнении двух потоков, так как сборка для 32-битной версии в VS2005 operator == перед сравнением будет обрезана до 32-битной. Лучше использовать position_to_offset и сравнивать смещение.