From owner-freebsd-hackers Wed Aug 1 20: 0:41 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from mail.urx.com (mail.urx.com [63.170.19.36]) by hub.freebsd.org (Postfix) with ESMTP id 7BA8B37B401 for ; Wed, 1 Aug 2001 20:00:33 -0700 (PDT) (envelope-from kstewart@urx.com) Received: from urx.com [206.159.132.160] by mail.urx.com with ESMTP (SMTPD32-6.06) id A24433F02C0; Wed, 01 Aug 2001 20:00:20 -0700 Message-ID: <3B68C244.20A4E2C9@urx.com> Date: Wed, 01 Aug 2001 20:00:20 -0700 From: Kent Stewart Reply-To: kstewart@urx.com Organization: Dynacom X-Mailer: Mozilla 4.77 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: kc5vdj@yahoo.com Cc: Joseph Gleason , Alex Zepeda , hackers@FreeBSD.ORG Subject: Re: Finding filesizes in C++ for files greater than 4gb References: <00b201c11af3$4fef1c10$0a2d2d0a@battleship> <20010801184531.A7725@zippy.mybox.zip> <003c01c11afb$3cdc7980$0a2d2d0a@battleship> <3B68C175.E8E8D444@yahoo.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Jim Bryant wrote: > > Joseph Gleason wrote: > > > > ----- Original Message ----- > > From: "Alex Zepeda" > > To: "Joseph Gleason" ; > > Sent: Wednesday, August 01, 2001 21:45 > > Subject: Re: Finding filesizes in C++ for files greater than 4gb > > > > > On Wed, Aug 01, 2001 at 09:34:43PM -0400, Joseph Gleason wrote: > > > > > > > In FreeBSD, how can I determine the size of a file in C++ when the file > > is > > > > greater than 4gb? > > > > > > > > Currently, I use stat() and use st_size. That is limited to 4gb (32bit > > > > unsigned int) > > > > > > You're wrong. Read the man page. No soup for you! Next! > > > > > > - alex > > > > Alright, I made a mistake. But I did read the man page. Where does it say > > off_t is 64bits? > > > > My mistake was not digging through the include files enough to see what was > > going on. > > I think you got him on that, but [cut and paste of two consecutive lines from the manpage]... > > off_t st_size; /* file size, in bytes */ > int64_t st_blocks; /* blocks allocated for file */ > > If the manpage specifies int64_t for the blocks, even though off_t isn't specified in the manpage, what does it lead you to assume? > > Although 64-bit file sizes have been part of FreeBSD since 2.0-RELEASE back in 1994 [as I recall], maybe the manpages should reflect > this fact by means other than the deductive reasoning outlined above. Joseph has made a good point. Just so someone can see it. coral# grep BSD_OFF *.h ansi.h:#define _BSD_OFF_T_ __int64_t /* file offset */ coral# pwd /usr/include/machine Kent -- Kent Stewart Richland, WA mailto:kbstew99@hotmail.com http://kstewart.urx.com/kstewart/index.html FreeBSD News http://daily.daemonnews.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message