Question:

how to get free disk space size in C on linux

by  |  earlier

0 LIKES UnLike

 Tags:

   Report

1 ANSWERS


  1. statfs/statfs64

    #include <sys/vfs.h>    /* or <sys/statfs.h> */
    int statfs(const char *path, struct statfs *buf);
    int fstatfs(int fd, struct statfs *buf);
    From the man page:

        The  function  statfs() returns information about a mounted file system.
       path is the pathname of any file within the mounted file system.
       buf is a pointer to a statfs structure defined approximately as follows:

           struct statfs {
              long    f_type;     /* type of file system (see below) */
              long    f_bsize;    /* optimal transfer block size */
              long    f_blocks;   /* total data blocks in file system */
              long    f_bfree;    /* free blocks in fs */
              long    f_bavail;   /* free blocks avail to non-superuser */
              long    f_files;    /* total file nodes in file system */
              long    f_ffree;    /* free file nodes in fs */
              fsid_t  f_fsid;     /* file system id */
              long    f_namelen;  /* maximum length of filenames */
           };
    You can use it like this:

    struct statfs buf;
    statfs("/", &buf);

Question Stats

Latest activity: earlier.
This question has 1 answers.

BECOME A GUIDE

Share your knowledge and help people by answering questions.