From: Zhang Le <ej...@pe...> - 2002-10-14 02:08:39
|
On Sunday 13 October 2002 21:56, you wrote: > That is good practice, but should not be necessary. If this actually > doesn't work without explicit f.close(), that would be a bug. I think so too.Under linux,all things are right,but when porting to win32= , some program is right while some are not.Hope it's my program's bug. > > > 2.always use ofstream(file,ios::binary) or fopen(file,"wb") to open > > a binary for written,even it not necessary under Linux. > > Right. Linux and Unix don't have the distinction text vs. binary. > For other systems it's rather important. Would it be possible to make mingw32 workaround this for easy porting of = unix=20 software? > > The problem is just missing C++ education (no offense intended). Any > book or documentation that teaches binary streams in C++ and doesn't > mention the issue should be thrown away. > PS: Note that with binary streams you are not even using any ofstream > features (that "f" is for "formatted" =3D=3D "text" after all), so you = can > just as well directly use the underlying > > > filebuf f; > f.open("file.bin",ios::binary|ios::out); > f.sputn((char*)dataptr,datasize); > f.close(); Maybe my unpleasent experience worthy of a hint for unix->win32 porting.S= ince=20 many unix developers do not notice such difference. Thanks a lot. --=20 Sincerely yours, Zhang Le |