Re: Compatible fstat()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Parag Warudkar wrote:

On Nov 8, 2005, at 2:39 PM, Bob Copeland wrote:

Isn't this just because the device size is > 2**32? What if you use fseeko(3)
and #define _FILE_OFFSET_BITS 64?


Yep. I got it to return the correct hard disk size (17Gb) using lseek64 and
#define _LARGEFILE64_SOURCE
#define _FILE_OFFSET_BITS 64

Here is what I did
-------------------------------------------------
#define _LARGEFILE64_SOURCE
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>

int main()
{
        int f;
        off64_t off=0;
Why is this initialized?
        f = open("/dev/hda", O_RDONLY );
        if(f <= 0){
                perror("open");
                exit(0);
        }
        off = lseek64(f, 0, SEEK_SET);
Why do this? it always returns zero.
        off = lseek64(f, 0, SEEK_END);
        perror("llseek");
        printf ("Size %lld\n", off);
        close(f);
        return 0;
}

RETURN VALUE
  Upon successful completion, lseek returns the resulting offset
  location as measured in bytes from the beginning of the  file.
  Otherwise,  a  value  of  (off_t)-1 is returned and errno is
  set to indicate the error.


--
   -bill davidsen ([email protected])
"The secret to procrastination is to put things off until the
 last possible moment - but no longer"  -me
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux