LSEEK and large files in Scyld

Peter Lindgren Peter.Lindgren at experian.com
Wed Oct 17 07:40:33 PDT 2001


I'm using the LinuxCentral version on one cluster, and just installed the Scyld "Basic Edition" on a 3-node test cluster (although I admit I haven't tried this test there yet...)

I'm trying to lseek past the 2Gig point in a "large" (greater than 2Gig) file, and lseek returns a large negative number. 

 I have _FILE_OFFSET_BITS=64 defined. I use "off_t" to define both the value I pass to lseek and what it returns. sizeof(off_t) returns 8.

If you lseek within the first 2Gig it works fine.

According to the online GNU glibc docs at
http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_230.html

"When the source file is compiled with _FILE_OFFSET_BITS == 64 the lseek function is in fact lseek64 and the type off_t has 64 bits which makes it possible to handle files up to @math{2^63} bytes in length. "

I have noted related items like:
    1. define "_LARGEFILE_SOURCE"     (doesn't help) 
    1. define "_LARGEFILE64_SOURCE"     (then I use lseek64 and off64_t and it still doesn't work)
    2, add an open flag "O_LARGEFILE" (which is supposed to be defined in <fcntl.h>, but isn't)

See definitions of some of these items at:
http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_13.html

If anyone knows what else I have to do to make this work, please let me know...


Peter Lindgren
Phone: 847 944 4515
Fax: 847 517 5889
E-mail: peter.lindgren at experian.com





More information about the Beowulf mailing list