亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > linux的statfs命令

      linux的statfs命令

      時間: 佳洲1085 分享

      linux的statfs命令

        linux下的statfs主要是用來獲取磁盤空間,下面由學習啦小編為大家搜集整理了linux的statfs命令的相關知識,希望對大家有幫助!

        linux的statfs命令詳解

        statfs 主要用來獲得磁盤的空間

        sun 系統(tǒng)下為 statvfs, linux系統(tǒng)下為statfs

        用法:

        #include <sys/vfs.h> /* 或者 <sys/statfs.h> */

        int statfs(const char *path, struct statfs *buf);

        int fstatfs(int fd, struct statfs *buf);

        參數(shù):

        path: 位于需要查詢信息的文件系統(tǒng)的文件路徑名。

        fd: 位于需要查詢信息的文件系統(tǒng)的文件描述詞。

        buf:以下結構體的指針變量,用于儲存文件系統(tǒng)相關的信息

        struct statfs {

        long f_type; /* 文件系統(tǒng)類型 */

        long f_bsize; /* 經(jīng)過優(yōu)化的傳輸塊大小 */

        long f_blocks; /* 文件系統(tǒng)數(shù)據(jù)塊總數(shù) */

        long f_bfree; /* 可用塊數(shù) */

        long f_bavail; /* 非超級用戶可獲取的塊數(shù) */

        long f_files; /* 文件結點總數(shù) */

        long f_ffree; /* 可用文件結點數(shù) */

        fsid_t f_fsid; /* 文件系統(tǒng)標識 */

        long f_namelen; /* 文件名的最大長度 */

        };

        linux的statfs命令簡單測試程序

        test.c#include <sys/statfs.h>

        #include <stdio.h>

        int main(int argc,char **argv)

        {

        struct statfs diskInfo;

        statfs(argv[1], &diskInfo);

        unsigned long long blocksize = diskInfo.f_bsize; //每個block里包含的字節(jié)數(shù)

        unsigned long long totalsize = blocksize * diskInfo.f_blocks; //總的字節(jié)數(shù),f_blocks為block的數(shù)目

        printf("Total_size = %llu B = %llu KB = %llu MB = %llu GB\n",

        totalsize, totalsize>>10, totalsize>>20, totalsize>>30);

        unsigned long long freeDisk = diskInfo.f_bfree * blocksize; //剩余空間的大小

        unsigned long long availableDisk = diskInfo.f_bavail * blocksize; //可用空間大小

        printf("Disk_free = %llu MB = %llu GB\nDisk_available = %llu MB = %llu GB\n",

        freeDisk>>20, freeDisk>>30, availableDisk>>20, availableDisk>>30);

        return 0;

        }

      3632279