Записать fpos_t на диск - PullRequest
0 голосов
/ 27 января 2020

У меня следующий вопрос: В некоторых частях моего программного обеспечения (в основном C ++) я полагаюсь на чтение предварительно рассчитанных двоичных данных из файла, который будет использоваться для численного моделирования. Эти файлы могут быть довольно большими (например, 32 ГБ и более).

В настоящий момент я читаю данные с помощью fread и сохраняю / перемещаюсь по некоторым важным позициям файла с помощью fgetpos / fsetpos .

В основном мое программное обеспечение работает на кластерах HP C, и в данный момент я пытаюсь реализовать функцию перезапуска в случае, если у меня заканчивается Wallclocktime, чтобы я мог возобновить свои вычисления. С этой целью я записываю несколько ключевых параметров в двоичный файл и также должен был бы сохранить положение моего fileptr до прерывания моего кода.

Итак, я проверил форум, и я не совсем уверен, что является лучшим решением для этого. Думаю, я не могу просто записать всю структуру fpos_t на диск, так как это может привести к бессмыслице, когда я снова ее прочту. ftell ограничен 2 ГБ файлами, если я прав?

Будет ли ftello лучшим вариантом? Совместимо ли это с различными компиляторами и ОС (например, intel, cray и т. Д.)?

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...