Search code examples
c++memory-managementvectoriostxxl

Error when using STXXL Autogrow


I'm currently working on a project that requires about 20 vectors to be written to individual files. I also need my STXXL disk file to grow automatically to account for very large vectors. I understand that STXXL provides autogrow functionality for disk files if you specify the size in the .stxxl file to be 0. I have done this but I get an IO error when creating my first vector.

My .stxxl file is as follows:

disk=c:\stxxl,0,wincall

and I'm creating my vectors like so:

stxxl::wincall_file file("file.dat", stxxl::file::CREAT | stxxl::file::RDWR); stxxl::vector<double, 2, stxxl::lru_pager<8>> vector1(&file, 1000000);

Can anyone help me fix this?

Thanks!


Solution

  • So, to answer my own question here, I believe the problem was trying to create a disk file directly at the root of the C drive. Once I changed the path in my .stxxl file to an absolute path off my user directory, it worked no problem, autogrow and all!