comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Changing File Size with OPENU?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Changing File Size with OPENU? [message #10212 is a reply to message #10203] Tue, 28 October 1997 00:00 Go to previous messageGo to previous message
Peter Mason is currently offline  Peter Mason
Messages: 145
Registered: June 1996
Senior Member
On Mon, 27 Oct 1997, Wayne Landsman wrote:
> I always thought that when opening a file with OPENU that the file wouldn't
> change size, unless one wrote past the end of the file. But below I give an
> example of a file changing size, even though I never reached the end of the
> file.
>
> I suspect this might be a IDL (or Solaris 2.6) bug, because if I uncomment
> the ;print,fstat(lun) line below, then the file size stays unchanged.
> Anybody know if the behaviour in the example below is expected?
<example cut>


The size change also happens on Digital Unix 4.0A with IDL 4.0.1 (and earlier
versions).
I wasn't surprised by this behaviour in IDL, having first been totally freaked
out by it in the C world. (I found out about it the hard way.) In C, you
have to do a fseek() or fflush() in between changing from a read to a write
(or vice versa) on the same streamed file unit, otherwise things just go wrong.
(At least C documentation on fopen() usually points this out.)

IDL's normal I/O routines are based on C routines, and I guess that this is
why they have the same problem. (IDL's POINT_LUN is equivalent to a fseek().
Also, I guess that FSTAT() incorporates a seek.)
It would be nice if the IDL docs mentioned this somewhere.


So, anyway, when changing from a read to a write (or vice versa) on the
same file unit, you should always do something like:
POINT_LUN, -lun, junk
or, as you've tried, an FSTAT(),
or possibly FLUSH,lun.



Peter Mason
CSIRO division of Exploration and Mining
P.O Box 136, North Ryde, NSW, 2113, Australia
E-Mail: p.mason@syd.dem.csiro.au Tel: +61 2 9490-8883 Fax: 9490-8960/8921
Web: http://www.syd.dem.csiro.au/research/MMTG/
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Lost Functions
Next Topic: Re: Memory linits for Unix IDL

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 18:00:25 PDT 2025

Total time taken to generate the page: 0.87967 seconds