This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/24320] New: fstream class is unable to create file in a read/write mode
- From: "ssmith at cemaphore dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Oct 2005 21:21:56 -0000
- Subject: [Bug libstdc++/24320] New: fstream class is unable to create file in a read/write mode
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Both Suse 9.3 (gcc 3.3.5/x86_64) and 10.0 (gcc 4.0.2/x86_64) exhibit this same
problem -- open an fstream with out|in will not actually create the file.
Strace shows that O_CREAT is not passed to open() when out|in is used, but is
if just 'out' is used. This is a rehash of bug #5629 which is claimed to be
fixed but apparently isn't.
#include <fstream>
using std::fstream;
int main(int argc,char **argv)
{
fstream f;
f.open("test-1",fstream::binary | fstream::out );
f.close();
f.open("test-2",fstream::binary | fstream::out | fstream::in );
f.close();
return 0;
}
ssmith@linux:~/src$ strace ./test 2>&1 | grep open | grep test
open("test-1", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
open("test-2", O_RDWR) = -1 ENOENT (No such file or directory)
--
Summary: fstream class is unable to create file in a read/write
mode
Product: gcc
Version: 4.0.2
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ssmith at cemaphore dot com
GCC build triplet: x86_64-suse-linux
GCC host triplet: x86_64-suse-linux
GCC target triplet: x86_64-suse-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24320