精品丰满熟女一区二区三区_五月天亚洲欧美综合网_亚洲青青青在线观看_国产一区二区精选

  • <menu id="29e66"></menu>

    <bdo id="29e66"><mark id="29e66"><legend id="29e66"></legend></mark></bdo>

  • <pre id="29e66"><tt id="29e66"><rt id="29e66"></rt></tt></pre>

      <label id="29e66"></label><address id="29e66"><mark id="29e66"><strike id="29e66"></strike></mark></address>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > linux的statfs命令

      linux的statfs命令

      時(shí)間: 佳洲1085 分享

      linux的statfs命令

        linux下的statfs主要是用來(lái)獲取磁盤空間,下面由學(xué)習(xí)啦小編為大家搜集整理了linux的statfs命令的相關(guān)知識(shí),希望對(duì)大家有幫助!

        linux的statfs命令詳解

        statfs 主要用來(lái)獲得磁盤的空間

        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:以下結(jié)構(gòu)體的指針變量,用于儲(chǔ)存文件系統(tǒng)相關(guān)的信息

        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; /* 非超級(jí)用戶可獲取的塊數(shù) */

        long f_files; /* 文件結(jié)點(diǎn)總數(shù) */

        long f_ffree; /* 可用文件結(jié)點(diǎn)數(shù) */

        fsid_t f_fsid; /* 文件系統(tǒng)標(biāo)識(shí) */

        long f_namelen; /* 文件名的最大長(zhǎng)度 */

        };

        linux的statfs命令簡(jiǎn)單測(cè)試程序

        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; //每個(gè)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