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


Groups > comp.lang.c > #58006

Re: fread a file of unknown size

From glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups comp.lang.c
Subject Re: fread a file of unknown size
Date 2015-03-08 23:39 +0000
Organization Aioe.org NNTP Server
Message-ID <mdimio$jt5$1@speranza.aioe.org> (permalink)
References <mdi5g9$9hc$1@reader1.panix.com>

Show all headers | View raw


ruben safir <ruben@mrbrklyn.com> wrote:
> if you use fread to read a file of unknown size with a set buffer size
> of say 500 bytes, when you get to the end of the file you are likely to
> read a stub of 500 bytes of info and the eof marker.
 
> And fread will not red that block and set and oef that can be read with
> feof.  That is how I understand thinga.  So we can either use fseek to
> discover the file size and fread accordingly or use fstat?
 
> is this the proper approach?

Best is to fread() until it returns zero. 

In most cases, that makes a nice while (or for) loop. 

As I understand it, it is Pascal where you are supposed to test for EOF
before reading, and that "bad things" (tm) happen if you keep reading.
C doesn't work that way.

Normally, once you reach EOF fread() will keep returning zero.
It might be that for some tape systems, after reading zero bytes that
it will continue on to the next file.

It has been some years since I thought about how tail -f works, but note
that a disk file can grow while you are reading it. 

Theoretically, you use feof() after you read zero bytes to find out if
it was an actual EOF or an error. In most cases, I don't care which one,
and besides, systems are reliable enough that most kinds of errors
that might have occured years ago, don't occur. 

-- glen

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


Thread

fread a file of unknown size ruben safir <ruben@mrbrklyn.com> - 2015-03-08 14:47 -0400
  Re: fread a file of unknown size Richard Heathfield <rjh@cpax.org.uk> - 2015-03-08 18:59 +0000
    Re: fread a file of unknown size James Kuyper <jameskuyper@verizon.net> - 2015-03-08 18:21 -0400
      Re: fread a file of unknown size Keith Thompson <kst-u@mib.org> - 2015-03-08 18:43 -0700
    Re: fread a file of unknown size fmassei@gmail.com - 2015-03-08 15:41 -0700
      Re: fread a file of unknown size raltbos@xs4all.nl (Richard Bos) - 2015-03-10 16:04 +0000
    Re: fread a file of unknown size Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-03-08 18:44 -0400
  Re: fread a file of unknown size jacob navia <jacob@spamsink.net> - 2015-03-08 20:32 +0100
  Re: fread a file of unknown size Keith Thompson <kst-u@mib.org> - 2015-03-08 12:48 -0700
  Re: fread a file of unknown size glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-03-08 23:39 +0000
    Re: fread a file of unknown size James Kuyper <jameskuyper@verizon.net> - 2015-03-08 20:40 -0400
      Re: fread a file of unknown size glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-03-09 01:24 +0000
        Re: fread a file of unknown size Keith Thompson <kst-u@mib.org> - 2015-03-09 07:53 -0700
          Re: fread a file of unknown size glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-03-09 17:36 +0000
            Re: fread a file of unknown size Keith Thompson <kst-u@mib.org> - 2015-03-09 10:44 -0700
              Re: fread a file of unknown size glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-03-09 20:07 +0000

csiph-web