В моей карьере мне никогда не приходилось иметь дело с такими большими файлами, как центральный аспект моего приложения, и я немного озадачен.
Мое приложение будет записывать много вещей в файл, и оно может увеличиться до нескольких гигабайт. Приложение должно работать в Windows (начиная с 7) и во всех современных Linux (начиная с ядра 4) для 32-разрядных и 64-разрядных компьютеров
Я пытался использовать fread
и друзей, поскольку они портативны, но все они используют long
. Я размышлял о том, чтобы разделить файл на несколько файлов размером 2 ГБ, чтобы продолжить работу со знаком long
, но это кажется слишком сложным при обработке.
Существует ли набор функций переносимых библиотек, которые помогут с этой задачей, или мне нужно написать тонкую оболочку для API платформы?
РЕДАКТИРОВАТЬ: Чтобы ответить на некоторые вопросы в комментарии.
- Это двоичный файл данных.
- Мне не нужно загружать все это в память, но мне придется искать смещения.
- Что касается использования fstream, похоже, что оно не будет работать на основе этого , поэтому я не стал его учитывать.