Please send us the output of the following: directory/full (of the output file produced by your C++ program
dump/header/block:count:1 (of the same file) I suspect there's some interesting file/record type here (streamlf or something similar) It would also be interesting to compare the above with the same utility output for the earlier version of the C++ program (without ANSI-standard iostream support). Carl > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: Sunday, August 24, 2003 8:51 PM > To: [EMAIL PROTECTED] > Subject: Working with ANSI-standard iostream on VMS > > > This question doesn't concern a problem with Perl itself, but I wonder > whether anybody else has faced or solved the problem. > > We have Perl scripts that parse the text output of some of our C++ > programs. We recently switched to using the ANSI-standard > class library, > including the new stream classes. With the new library, the > iostream I/O > and standard I/O are synchronized, which seems like a nice > feature, because > I believe it will mix the outputs via cout and via printf in the right > order. The problem is that on VMS, where files have records, > each item put > out to cout is now in a separate record, which did not used > to happen. For > example, with the following code: > > cout << "aaa"; > cout << "bbbb"; > cout << "ccccc" << endl; > > With the old Compaq C++ class library, that code would > produce one record > in stdout, with "aaabbbbccccc" in it. > > Now we get four records, one for each of the three strings > and an empty one > for the endl. It looks correct on the terminal, showing one > line of 12 > characters, but the Perl script that receives the output sees > the separate > records and can't really tell where the program intended the > line to end. > We can't reliably use the empty record to signal the end of > line because > the following code produces only three records: > > cout << "aaa"; > cout << "bbbb"; > cout << "ccccc\n"; > > We can use the following line to revert to the old behavior, > but I'd like > to be able to work with the new stuff and still maintain > portability across > VMS, UNIX and Windows. I believe that UNIX and Windows, with > their streams > of bytes, don't have the problem, although I haven't probed as deeply > there. > > ios_base::sync_with_stdio( false ); > > --Travis Craig > > ALSTOM's T&D Energy Automation & Information Business > Bellevue, WA > > CONFIDENTIALITY: This e-mail and any attachments are > confidential and may > be privileged. If you are NOT a named recipient: please > notify the sender > immediately, do NOT disclose the contents to another person, > do NOT use the > contents for any purpose, do NOT store or copy the information in any > medium. > > CONFIDENTIALITE : Ce message et les �ventuelles pi�ces attach�es sont > confidentiels. Si vous n'�tes pas dans la liste des > destinataires, veuillez > informer l'exp�diteur imm�diatement et ne pas divulguer le > contenu � une > tierce personne, ne pas l'utiliser pour quelque raison que ce > soit, ne pas > stocker ou copier l'information qu'il contient sur un > quelconque support. > > > >
