|
Boost Users : |
From: Victor Morales-Duarte (victor_moralesduarte_at_[hidden])
Date: 2006-12-14 12:13:39
Hi all,
I'm trying to use boost::iostream::mapped_file_source directly, but I can't close and then re-open the file without getting an exception. Here is an example.
**********************************************************************************************
#include <boost/iostreams/device/mapped_file.hpp>
int main( void )
{
std::string fileName( "SomeFile.ext" );
int osAlignment = boost::iostreams::mapped_file_source::alignment();
boost::iostreams::mapped_file_source fileMap( fileName, 2 * osAlignment, 0 );
// Load data to application memory using fileMap.data();
fileMap.close();
// The following line throws because fileMap.is_open() returns true
fileMap.open( fileName, 1024 * osAlignment, 1024 * osAlignment );
// Load more data to application memory using fileMap.data();
return 0;
}
*****************************************************************************************
What I truly don't understand is why a call to is_open() woud return true immediately after a call to close(). What do I need to do to be able to map
different parts of the same file? I can't map the whole file because the number
of files that I need to process is large enough that I'd run out of allocation
space for my process.
Thanks guys.
Victor
I'm using boost 1.33.1 with Visual Studio 2003 on WinXP SP2.
---------------------------------
Cheap Talk? Check out Yahoo! Messenger's low PC-to-Phone call rates.
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net