Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #8434

Re: Fread problem

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: Fread problem
Date 2011-07-18 08:53 -0700
Organization None to speak of
Message-ID <ln7h7foaac.fsf@nuthaus.mib.org> (permalink)
References <ivq9i7$841$1@speranza.aioe.org> <ivqcap$eqo$1@reader1.panix.com> <ivrl7v$3gb$1@speranza.aioe.org> <87d3har2zu.fsf@temporary-address.org.uk> <ivss0p$ulb$1@speranza.aioe.org>

Show all headers | View raw


Jack <spamtrap@trashcan.invalid> writes:
[...]
> Thanks for your help. I think I've now found a solution.
>
> After the file is first Fopen'd, I make a backup of the internal buffers.
> fp=Fopen(...);
> FILE fback;
> memcpy(&fback,fp,sizeof(FILE));
>
> then before the fread I restore this buffer,
> memcpy(fp,&fback,sizeof(FILE));
> Fread(...,fp);
>
> Now there is no segmentation fault, job done.

That's actually a reasonable first step in tracking down the real
problem.

If I were working on this, I might do the following.

First, change Fopen and Fread to fopen and fread, respectively.

Then, rather than copying the saved contents of fback back into
*fp, I'd compare them.  If you haven't called any stdio functions
between the two memcpy() calls, then the contents of *fp shouldn't
have changed.  If they have, then something is stepping on memory
it doesn't own, and you can start narrowing down where it happened.
For example, you might sprinkle some assert() statements through
the intervening code:

    assert(fback == *fp);

(this assumes FILE is a struct type, which it probably is).

With just a little work, you should be able to determine exactly
where the real problem is.

Of course, just papering over the problem by copying the contents
of fback back into *fp is not a "solution", it's malpractice.

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Nokia
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Fread problem Jack <spamtrap@trashcan.invalid> - 2011-07-15 20:56 +0000
  Re: Fread problem Ian Collins <ian-news@hotmail.com> - 2011-07-16 09:05 +1200
    Re: Fread problem Noob <root@127.0.0.1> - 2011-07-19 13:41 +0200
  Re: Fread problem John Gordon <gordon@panix.com> - 2011-07-15 21:43 +0000
    Re: Fread problem Jack <spamtrap@trashcan.invalid> - 2011-07-16 09:22 +0000
      Re: Fread problem Dr Nick <3-nospam@temporary-address.org.uk> - 2011-07-16 10:25 +0100
        Re: Fread problem Jack <spamtrap@trashcan.invalid> - 2011-07-16 20:23 +0000
          Re: Fread problem Ian Collins <ian-news@hotmail.com> - 2011-07-17 08:37 +1200
          Re: Fread problem John Gordon <gordon@panix.com> - 2011-07-16 20:46 +0000
            Re: Fread problem James Kuyper <jameskuyper@verizon.net> - 2011-07-16 18:29 -0400
              Re: Fread problem John Gordon <gordon@panix.com> - 2011-07-16 23:14 +0000
          Re: Fread problem Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-07-16 16:55 -0400
            Re: Fread problem blmblm@myrealbox.com <blmblm.myrealbox@gmail.com> - 2011-07-19 17:17 +0000
              [OT] Re: Fread problem Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-07-19 20:11 -0400
                Re: [OT] Re: Fread problem Seebs <usenet-nospam@seebs.net> - 2011-07-20 02:27 +0000
          Re: Fread problem Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-07-16 14:57 -0600
            Re: Fread problem Jack <spamtrap@trashcan.invalid> - 2011-07-17 20:45 +0000
              Re: Fread problem Ian Collins <ian-news@hotmail.com> - 2011-07-18 08:50 +1200
              Re: Fread problem James Kuyper <jameskuyper@verizon.net> - 2011-07-17 17:06 -0400
                Re: Fread problem Ian Collins <ian-news@hotmail.com> - 2011-07-18 09:09 +1200
                Re: Fread problem Hans Vlems <hvlems@freenet.de> - 2011-07-18 13:01 -0700
              Re: Fread problem Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-07-17 16:06 -0600
              Re: Fread problem Geoff <geoff@invalid.invalid> - 2011-07-17 17:56 -0700
                Re: Fread problem Seebs <usenet-nospam@seebs.net> - 2011-07-18 04:08 +0000
                Re: Fread problem Geoff <geoff@invalid.invalid> - 2011-07-17 22:08 -0700
                Re: Fread problem Jack <spamtrap@trashcan.invalid> - 2011-07-18 20:20 +0000
                Re: Fread problem Ian Collins <ian-news@hotmail.com> - 2011-07-19 08:50 +1200
                Re: Fread problem Cat 22 <cat22@invalid.org> - 2011-07-18 18:34 -0700
                Re: Fread problem James Kuyper <jameskuyper@verizon.net> - 2011-07-19 07:19 -0400
                Re: Fread problem Stephen Sprunk <stephen@sprunk.org> - 2011-07-19 09:31 -0500
              Re: Fread problem Todd Carnes <toddcarnes@gmail.com> - 2011-07-18 04:23 +0000
              Re: Fread problem Nick Keighley <nick_keighley_nospam@hotmail.com> - 2011-07-18 01:15 -0700
              Re: Fread problem Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-07-18 07:22 -0400
                Re: Fread problem Kenneth Brody <kenbrody@spamcop.net> - 2011-07-18 13:56 -0400
              Re: Fread problem Kenneth Brody <kenbrody@spamcop.net> - 2011-07-18 13:49 -0400
                Re: Fread problem Eric Sosman <esosman@ieee-dot-org.invalid> - 2011-07-18 20:31 -0400
                Re: Fread problem Squeamizh <squeamz@hotmail.com> - 2011-07-18 21:11 -0700
              Re: Fread problem blmblm@myrealbox.com <blmblm.myrealbox@gmail.com> - 2011-07-19 17:19 +0000
                Re: Fread problem Kenneth Brody <kenbrody@spamcop.net> - 2011-07-19 14:18 -0400
                Re: Fread problem pete <pfiland@mindspring.com> - 2011-07-19 15:19 -0400
                Re: Fread problem blmblm@myrealbox.com <blmblm.myrealbox@gmail.com> - 2011-07-19 21:33 +0000
          Re: Fread problem Geoff <geoff@invalid.invalid> - 2011-07-16 14:27 -0700
            Re: Fread problem John Gordon <gordon@panix.com> - 2011-07-16 22:22 +0000
          Re: Fread problem "Kleuskes & Moos" <kleuske@xs4all.nl> - 2011-07-16 23:28 -0700
          Re: Fread problem "J. J. Farrell" <jjf@bcs.org.uk> - 2011-07-18 04:58 +0100
          Re: Fread problem Keith Thompson <kst-u@mib.org> - 2011-07-18 08:53 -0700
            Re: Fread problem Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-07-18 18:07 +0100
              Re: Fread problem Keith Thompson <kst-u@mib.org> - 2011-07-18 12:50 -0700
            Re: Fread problem Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-07-18 12:18 -0600
            Re: Fread problem John Gordon <gordon@panix.com> - 2011-07-18 20:18 +0000
              Re: Fread problem Keith Thompson <kst-u@mib.org> - 2011-07-18 13:28 -0700
                Re: Fread problem Lew Pitcher <lpitcher@teksavvy.com> - 2011-07-18 16:55 -0400
              Re: Fread problem Anders Wegge Keller <wegge@wegge.dk> - 2011-07-18 22:51 +0200
            Re: Fread problem blmblm@myrealbox.com <blmblm.myrealbox@gmail.com> - 2011-07-19 17:21 +0000
          Re: Fread problem Kenneth Brody <kenbrody@spamcop.net> - 2011-07-18 13:44 -0400
      Re: Fread problem Ian Collins <ian-news@hotmail.com> - 2011-07-16 21:39 +1200
      Re: Fread problem Joe Pfeiffer <pfeiffer@cs.nmsu.edu> - 2011-07-16 12:18 -0600
      Re: Fread problem John Gordon <gordon@panix.com> - 2011-07-16 19:36 +0000

csiph-web