Какой лучший способ записи в большее количество файлов, чем позволяет ядро ​​одновременно открывать? - PullRequest
3 голосов
/ 16 июня 2010

У меня очень большой двоичный файл, и мне нужно создать отдельные файлы на основе идентификатора во входном файле.Есть 146 выходных файлов, и я использую cstdlib и fopen и fwrite.FOPEN_MAX равно 20, поэтому я не могу держать все 146 выходных файлов открытыми одновременно.Я также хочу минимизировать количество раз, когда я открываю и закрываю выходной файл.

Как эффективно записывать в выходные файлы?

Я также должен использовать библиотеку cstdlib из-за устаревшего кода.

Исполняемый файл также должен быть совместим с UNIX и Windows.

Ответы [ 11 ]

0 голосов
/ 16 июня 2010

Решение кажется очевидным - открыть N файлов, где N несколько меньше, чем FOPEN_MAX. Затем прочитайте входной файл и извлеките содержимое первых N выходных файлов. Затем закройте выходные файлы, перемотайте ввод и повторите.

...