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 14: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

> > > 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.
> If this were true, it would be a major limitation of Standard C... so I
> looked further and found that it is not.


> Further, Section 4.9.3 (page 127) line 12 says:
>   Binary files are not truncated, except as defined in  Whether a
>   write on a text stream causes the associated file to be truncated beyond
>   that point is implementation-defined.
> Truncation is mentioned only with regard to specific file open modes.
> "r+b" has no mention of truncation.

Huh! I must've just remembered the stuff for text streams and thought
I'd seen it to be true in general! I stand corrected.

> In short, I think binary updates without truncation _are_ supported in
> C89.  (whew!)  I don't have a copy of C99... perhaps you can check there.

I do, but I seriously doubt it has been changed there.

-Micah, doesn't know *what* he was smoking...
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:
Sunset Systems
Who graciously hosts our website & mailing lists!