df's data may be based on f_bavail
, not f_bfree
So for calculation of total space and available space may be as follows
long long Total_Space = vfs.f_blocks;
Total_Space *= vfs.f_frsize;
Total_Space /= 1024;
long long Avail_Space = vfs.f_bfree;
Avail_Space *= vfs.f_frsize;
Avail_Space /= 1024;
printf("Total Space=%lldKb Available Space=%lldKB\n",Total_Space,Avail_Space);