2015-05-08 3 views
0

Я изо всех сил пытаюсь использовать библиотеку stxxl таким образом, что я могу не только сохранить данные из их векторной структуры в файл, но и восстановить его из этого файла при повторном запуске моей программы.stxxl сохранить и прочитать вектор из файла диска

Я обнаружил, что вы можете построить вектор из файла (http://stxxl.sourceforge.net/tags/master/classstxxl_1_1vector.html#a4d9029657cc11315cb77955fae70b877), но класс «файл» содержит только эти функции (http://stxxl.sourceforge.net/tags/master/classstxxl_1_1file.html), чтобы никоим образом не получить доступ к существующему файлу с некоторыми данными дорожка.

У кого-то, кто работал с этой библиотекой раньше, есть идея, как это сделать?

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

ответ

0

stxxl::file является интерфейсом базового класса. В зависимости от вашей операционной системы, вы хотите один из производных классов

  • stxxl::syscall_file для UNIX, Linux и Mac OS X с использованием POSIX read и write,
  • stxxl::wincall_file для Windows, или
  • stxxl::linuxaio_file для Linux с помощью асинхронные входы/выходы SYS_io_* (см. man 7 aio). Для этого требуется STXXL 1.4.1.

Вы можете использовать функцию stxxl::create_file, чтобы решить во время выполнения, какой бэкэнд использовать. Установите параметр io_impl на "syscall", "wincall", или "linuxaio", соответственно.

+0

Примеры с 'stxxl :: syscall_file' также работают в Windows. Это потому, что совместим с POSIX? Будет ли изменение в 'stxxl :: wincall_file' сделать вещи более эффективными? –

Смежные вопросы