rendered paste body#include <sys/statfs.h>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream>
#include <sstream>
using namespace std;
int main(int argvc, char* argv[]) {
char *filename = argv[1];
cout<<"File "<<filename<<"\n";
struct statfs buf;
if (!statfs(filename, &buf)) {
double avail, blksize, blocks, freeblks, disk_size, used, free;
blksize = buf.f_bsize;
blocks = buf.f_blocks;
cout<<"File "<<blocks<<"\n";
freeblks = buf.f_bfree;
avail = buf.f_bavail;
disk_size = blocks * blksize;
free = avail * blksize;
used = disk_size - free;
double disk_size1,disk_size2;
disk_size1 = disk_size/(1024*1024);
disk_size2 = disk_size/(1024*1024*1024);
double usage1,usage2;
usage1 = used/(1024*1024);
usage2 = used/(1024*1024*1024);
double free1,free2;
free1 = free/(1024*1024);
free2 = free/(1024*1024*1024);
cout.precision(10);
cout<<"Disk: Size "<<disk_size<<" "<<"["<<disk_size1<<"MiB] ["<<disk_size2<<"GiB] Used "<<used<<" ["<<usage1<<"MiB] ["<<usage2<<"GiB] Free "<<free<<" ["<<free1<<"MiB] ["<<free2<<"GiB]\n";
}
else
{
printf("Couldn't get file system statistics\n");
}
return 1;
}