l i n u x - u s e r s - g r o u p - o f - d a v i s
Next Meeting:
July 7: Social gathering
Next Installfest:
Latest News:
Jun. 14: June LUGOD meeting cancelled
Page last updated:
2003 May 21 13:12

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] [C] randomly accessing file data in C
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] [C] randomly accessing file data in C

On Wed, May 21, 2003 at 09:50:38AM -0700, Ken Herron wrote:
> --On Wednesday, May 21, 2003 09:05:15 -0700 "Micah J. Cowan" 
> <micah@cowan.name> wrote:
> > On Tue, May 20, 2003 at 06:45:53PM -0700, Mark K. Kim wrote:
> >> Hello...
> >>
> >> I'm trying to access data in a file in C.  I want to read some portion
> >> of it, modify it, then rewrite that portion back into the file.
> >
> > I don't think what you're trying to do is possible. What you *can* do,
> > is read in the file in chunks of an appropriate size for keeping in
> > memory, and writing them out to a new (temporary) file as you go. As
> > soon as you reach the spot you need to modify, you just modify the
> > data you are going to write out to the new file, and then copy the
> > tail end of the original, chunk-by-chunk, into the temporary file.
> Er, what?  Overwriting part of a file is a normal operation. Kim's 
> problem is that he's opening the output file in "w+" mode, which 
> truncates the file.

Um, sorry. I was thinking from a comp.lang.c perspective. I never use
that technique if I expect it to work on other systems, because as far
as the ISO C standard is concerned, writing to any point in the middle of a
file may result in truncation, regardless of which mode was used.

vox-tech mailing list

LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
O'Reilly and Associates
For numerous book donations.