delorie.com/archives/browse.cgi | search |
From: | Hans-Bernhard Broeker <broeker AT physik DOT rwth-aachen DOT de> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: filelength(): POSIX or not |
Date: | 31 Oct 2000 18:53:10 GMT |
Organization: | Aachen University of Technology (RWTH) |
Lines: | 22 |
Distribution: | world |
Message-ID: | <8tn4em$m65$1@nets3.rz.RWTH-Aachen.DE> |
References: | <972911905 DOT 508266 AT shelley DOT paradise DOT net DOT nz> <753uvso5d74rfdhndnrc98aoksgl0i7hvp AT 4ax DOT com> |
NNTP-Posting-Host: | acp3bf.physik.rwth-aachen.de |
X-Trace: | nets3.rz.RWTH-Aachen.DE 973018390 22725 137.226.32.75 (31 Oct 2000 18:53:10 GMT) |
X-Complaints-To: | abuse AT rwth-aachen DOT de |
NNTP-Posting-Date: | 31 Oct 2000 18:53:10 GMT |
Originator: | broeker@ |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Reply-To: | djgpp AT delorie DOT com |
Damian Yerrick <Bullcr_pd_yerrick AT hotmail DOT comremovebullcr_p> wrote: > fopen() the file in "rb" mode, fseek() to the end, and read the > length with ftell(). This is ANSI so it should work on any full > ANSI C compiler. The calling sequence is ANSI, right. But it's not at all ANSI to assume it will always do what you think it does. To quote the C standard on this: [ISO-C 89:7.9.9.2#2, C99 draft 7.19.9.2#2]: A binary stream need not meaningfully support fseek calls with a whence value of SEEK_END. It's long-standing knowledge in the C newsgroups there is, in fact, no way at all to portably find the length of a given file other than reading all of it and adding the byte counts. -- Hans-Bernhard Broeker (broeker AT physik DOT rwth-aachen DOT de) Even if all the snow were burnt, ashes would remain.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |