www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/11/24/16:56:06

From: elric AT wheel DOT dcn DOT davis DOT ca DOT us (Jeffrey Taylor)
Newsgroups: comp.os.msdos.djgpp
Subject: filebuf problem
Date: 22 Nov 1996 19:40:54 GMT
Organization: Davis Community Network - Davis, California, USA
Lines: 22
Message-ID: <574vk6$hr2@mark.ucdavis.edu>
NNTP-Posting-Host: wheel.dcn.davis.ca.us
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

I am trying to open a temporary scratch file for binary data in C++.  I
do:
   fstream file("name", ios::in | ios::out | ios:: trunc | ios:binary);
   if (!file.rdbuf()->is_open())
      fail code

It always fails.  I think the problem is in the libio/filebuf.cc, line 109
which reads:

   if (!(mode & (int)ios::nocreate) && !(mode & (int)ios::in))
      posix_mode |= O_CREAT;

I think it should read:

   if (!(mode & (int)ios::nocreate) && (mode & (int)ios::out) &&
            (mode & (int)(ios::trunc | ios::app)))
      posix_mode |= O_CREAT;

Someone want to give me a reality check on this?

Thanks,
   Jeff T

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019