In Windows using VisualStudio 10 I've created a mapped_file as char * OpenRW(std::string filePath ) { <<fragment >> mfp = new boost::iostreams::mapped_file_params(filePath); mfp->mode = boost::iostreams::mapped_file::readwrite; mfp->new_file_size = size; mfp->offset = 0; mf = new boost::iostreams::mapped_file(*mfp); return mf->data(); } I later close the file void Close() { <<fragment>> mf->close(); delete mfp; delete mf; } And then want to reopen it { char* fileName = filePath.c_str(); int test = _open(fileName,_O_BINARY|_O_RDWR); } but test is returned -1 -- note that I am able to open the file _O_RDONLY. If I close the application and restart it, then I can read the file _O_RDWR (i.e. test is returned with a valid handle) Is this a bug or am I doing something wrong? Thanks Mark