Re: Identifying sparse files using getattrlist()
Re: Identifying sparse files using getattrlist()
- Subject: Re: Identifying sparse files using getattrlist()
- From: rohan a <email@hidden>
- Date: Tue, 3 Nov 2009 15:40:02 +0530
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