Mailing Lists: Apple Mailing Lists
Image of Mac OS face in stamp
Re: Identifying sparse files using getattrlist()
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Identifying sparse files using getattrlist()



Hello All,
This is the program :

#include<stdio.h>
#include <sys/attr.h>
#include <unistd.h>
#include <string.h>

typedef struct FileAttributes
{
        unsigned long length;
        off_t TotalSize;
        off_t AllocSize;
}FileAttributes;

int main(int argc, char *argv[])
{
        struct attrlist attrList;
        FileAttributes FileBuffer;

        memset(&attrList, 0, sizeof(attrList));
        memset(&FileBuffer, 0, sizeof(FileBuffer));

        attrList.bitmapcount = ATTR_BIT_MAP_COUNT;
        attrList.fileattr = ATTR_FILE_TOTALSIZE | ATTR_FILE_ALLOCSIZE;

        if (getattrlist(argv[1], &attrList, &FileBuffer,
sizeof(FileBuffer),FSOPT_NOFOLLOW) == 0)
        {
                printf("Alloc Size = %lld\n", FileBuffer.AllocSize);
                printf("Total Size = %lld\n", FileBuffer.TotalSize);
        }

        return 0;
}







On Mon, Nov 2, 2009 at 7:07 PM, rohan a <email@hidden> wrote:
> Hello All,
>
> I am trying to identify if a particular file is a sparse file using
> getattrlist()
>
> I am using this :     attrList.fileattr    = ATTR_FILE_TOTALSIZE |
> ATTR_FILE_ALLOCSIZE;
>
> According to the man page if  ATTR_FILE_ALLOCSIZE <
> ATTR_FILE_TOTALSIZE the file is a sparse file.
>
> I created the sparse file using dd
> #dd if=/dev/zero of=sparse-file bs=1 count=0 seek=3g
>
> However, both AllocSize and TotalSize are returning the same size
> while actually AllocSize < TotalSize
>
> I am using UFS
>
> Thanks,
> Rohan
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >Identifying sparse files using getattrlist() (From: rohan a <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2011 Apple Inc. All rights reserved.