how to use lseek() system call with over 2G files?

Dan Nelson dnelson at allantgroup.com
Tue Jan 6 19:42:34 PST 2004


In the last episode (Jan 06), Scott W said:
> Lowell Gilbert wrote:
> > off_t has *never* been anything but 64-bit in FreeBSD.
>
> This is interesting, having had to deal with the LARGEFILE_64_SOURCE
> and _LP64 'hacks' (llseek(), creat64(), etc etc...back in Solaris
> from 2.6 on, which seem to still be in place in Solaris 9.  Are all
> file operations and mmap() 64 bit capable then in FreeBSD (or
> presumably Open/Net/FreeBSD?) I don't see any LARGEFILE constants in
> FreeBSD....

Correct.  The whole reason for the largefile stuff was to ease the
transition from 32-bit off_t to 64-bit off_t.  Even now, I don't think
Linux, Solaris, or AIX enable 64-bit off_t by default.  Heck, Solaris
and AIX still default to building 32-bit /binaries/, even though
they've been on 64-bit CPUs for ages.  My guess is the "transition
period" will last at long as x86 CPUs exist :) Tru64 always ran on the
64-bit Alpha, so it's another OS that never had to deal with it.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list