l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
October 7: Social gathering
Next Installfest:
TBD
Latest News:
Aug. 18: Discounts to "Velocity" in NY; come to tonight's "Photography" talk
Page last updated:
2003 May 20 23:13

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 Tue, 20 May 2003, 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.
> 
> Reading isn't a problem -- I can use fseek or lseek or whatever and read
> the data I want using fread or read.  No problem.
> 
> Writing is another matter.  When I seek to the spot and write the modified
> data, it destroys the data that comes afterwards.

You need to be careful how you open it... if you are using open, you
probably want O_RDWR mode... if fopen, "r+".

> There's another catch: I gotta use 64-bit safe calls because the file I'm
> reading/writing is quite big (> 2GB).  And since the file is so big, I
> can't store the data that follows to prevent it from getting overwritten.
> 
> Anybody know how to do this?  I'm so disheartened.  Please help!!  Thanks!

Google sez http://www.suse.de/~aj/linux_lfs.html.  Note that the gory
details are described in the document linked at the bottom of the "Using
LFS" section.

I say be scrupulous about using typedefs like off_t or you will be sorry,
and beware of shared libraries that aren't set up for large file support.

PS: Looked at your code... it is always a red flag to me when you place
your own prototypes for library functions in your source file.  Use the
defines described in the document referenced above.  Also, you are using
"w+b" instead of "r+b".

---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil@dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...2k
---------------------------------------------------------------------------


_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
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:
EDGE Tech Corp.
For donating some give-aways for our meetings.