All pastes #248755 Raw Edit

Mine

public text v1 · immutable
#248755 ·published 2006-11-14 23:39 UTC
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;
}