Boost logo

Boost Users :

From: Eoin (eoin-keyword-boostusers.07781a_at_[hidden])
Date: 2007-03-16 20:30:45


Hello,

My development platform is Win XP with sp2. I am using a very recent
(no older than a week) copy of the boost cvs version 1.34rc and the
compilers are MSVC 7.1 and 8.0 both with the service packs.

I've encountered some puzzling behaviour with filesystem::wpath's and
filesystem::ofstream's when opened in binary mode and compiled with
VC++ 7.1.

When I attempt to open a binary ofstream with a wpath as its filename
it will fail if the file did not already exist. This appears to be
contrary to when the filename argument is a narrow filesystem::path.

When the binary mode is not specified both files are created.

Attached is a very small app. demonstrating the inconsistency. This
only occurs with 7.1, when compiled with 8.0 both files will be
created if they did not already exist.

Kind regards, Eoin.


#include <iostream>

#include <boost/filesystem/path.hpp>
#include <boost/filesystem/fstream.hpp>

namespace fs = boost::filesystem;

int main()
{
        fs::wpath wide_filename = L"./Wide.txt";
        fs::path narrow_filename = "./Narrow.txt";
        
        fs::ofstream wide_fs(wide_filename, fs::fstream::binary);
        std::cout << ((wide_fs.is_open()) ?
                      "Wide file open." : "Wide file not open.")
                  << std::endl;
        
        fs::ofstream narrow_fs(narrow_filename, fs::fstream::binary);
        std::cout << ((narrow_fs.is_open()) ?
                      "Narrow file open." : "Narrow file not open.")
                  << std::endl;
        
    return 0;
}


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