国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(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)過(guò)優(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