Hi Ian,
I looked to that table 92 
(from http://cs.nyu.edu/courses/summer11/G22.2110-001/documents/c++2003std.pdf)
and the related lines are as follows:

ios_base flag combination
binary   in   out   trunc   app     stdio equivalent
                  +                              "w"
                  +       +                     "w"
            +    +       +                     "w+"

Could it be the case that some compilers (on linux in our case) are expecting to see the combination on the first line above, and others on the second?
(Given the first line, can we revert back to the initial version of the code as it used to work on all platforms?)


On Tue, Aug 16, 2011 at 10:16 AM, Ian Scott <scottim@imorphics.com> wrote:

Having looked further into it, the current code appears to me to be doing the "right thing" for "w+" and "w". Although its support for "rw" etc is wrong. See table 92 in section in the c++ standard (1998). So I'm not inclined to just revert back. At best it would be just trading my old problem for your new one.

Have you checked to see if you are using a illegal combination of modes.
>From the standard
"If mode is not some combination of flags shown in the table then open fails".

If we really are dealing with incompatible standard libraries, then a unit test to demonstrate the problem would be a good place for you to start. I might be able to spend a little time putting a fix into the vcl layer when I get back.


BTW Please can we keep this on vxl-maintainers. The record keeping is useful even if no-one else gets involved.