This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: libstdc++ [io]fstream cannot open file in binary mode (g++ and egcs)


> I can not open fstream in BINARY mode,

Thanks for your bug report. Here is a patch.

Is that ok for the release branch as well?

Martin

2000-01-26  Martin v. Löwis  <loewis@informatik.hu-berlin.de>

	* fstream.h (ifstream::ifstream): Add ios::in to mode.
	(ifstream::open): Likewise.
	(ofstream::ofstream): Add ios::out to mode.
	(ofstream::open): Likewise.

Index: fstream.h
===================================================================
RCS file: /cvs/gcc/egcs/libio/fstream.h,v
retrieving revision 1.2
diff -u -p -r1.2 fstream.h
--- fstream.h	1999/09/04 15:08:50	1.2
+++ fstream.h	2000/01/26 07:53:50
@@ -1,5 +1,5 @@
 /* This is part of libio/iostream, providing -*- C++ -*- input/output.
-Copyright (C) 1993 Free Software Foundation
+Copyright (C) 1993, 2000 Free Software Foundation
 
 This file is part of the GNU IO Library.  This library is free
 software; you can redistribute it and/or modify it under the
@@ -62,9 +62,9 @@ class ifstream : public fstreambase, pub
     ifstream(int fd) : fstreambase(fd) { }
     ifstream(int fd, char *p, int l) : fstreambase(fd, p, l) { } /*Deprecated*/
     ifstream(const char *name, int mode=ios::in, int prot=0664)
-	: fstreambase(name, mode, prot) { }
+	: fstreambase(name, mode | ios::in, prot) { }
     void open(const char *name, int mode=ios::in, int prot=0664)
-	{ fstreambase::open(name, mode, prot); }
+	{ fstreambase::open(name, mode | ios::in, prot); }
 };
 
 class ofstream : public fstreambase, public ostream {
@@ -73,9 +73,9 @@ class ofstream : public fstreambase, pub
     ofstream(int fd) : fstreambase(fd) { }
     ofstream(int fd, char *p, int l) : fstreambase(fd, p, l) { } /*Deprecated*/
     ofstream(const char *name, int mode=ios::out, int prot=0664)
-	: fstreambase(name, mode, prot) { }
+	: fstreambase(name, mode | ios::out, prot) { }
     void open(const char *name, int mode=ios::out, int prot=0664)
-	{ fstreambase::open(name, mode, prot); }
+	{ fstreambase::open(name, mode | ios::out, prot); }
 };
 
 class fstream : public fstreambase, public iostream {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]