国产成人v爽在线免播放观看,日韩欧美色,久久99国产精品久久99软件,亚洲综合色网站,国产欧美日韩中文久久,色99在线,亚洲伦理一区二区

學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > linux的statfs命令

linux的statfs命令

時間: 佳洲1085 分享

linux的statfs命令

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

  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:以下結(jié)構(gòu)體的指針變量,用于儲存文件系統(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; /* 非超級用戶可獲取的塊數(shù) */

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

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

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

  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