最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

linux系統(tǒng)獲取硬盤使用信息

 更新時(shí)間:2013年10月22日 09:32:45   作者:  
linux查看硬盤信息要用的幾個(gè)命令:df命令、du命令、statfs結(jié)構(gòu)及函數(shù),這里用圖文說明一下使用方法。

1、df命令

  Linux下可以用df命令獲取硬盤的使用情況,通過man可以獲取df命令的詳細(xì)情況。df命令經(jīng)常用的參數(shù)為:

  a:顯示全部的檔案系統(tǒng)和各分割區(qū)的磁盤使用情形
  i:顯示i -nodes的使用量
  k:大小用k來表示 (默認(rèn)值)
  t:顯示某一個(gè)檔案系統(tǒng)的所有分割區(qū)磁盤使用量
  x:顯示不是某一個(gè)檔案系統(tǒng)的所有分割區(qū)磁盤使用量
  T:顯示每個(gè)分割區(qū)所屬的檔案系統(tǒng)名稱
  常用命令:df -hi

舉例截圖如下所示



2、du命令

  du命令用來查詢檔案或目錄的磁盤使用空間,通過man獲取du命令的詳細(xì)介紹。常用的命令參數(shù)如下:
  a:顯示全部目錄和其次目錄下的每個(gè)檔案所占的磁盤空間
  b:大小用bytes來表示 (默認(rèn)值為k bytes)
  c:最后再加上總計(jì) (默認(rèn)值)
  s:只顯示各檔案大小的總合 (summarize)
  x:只計(jì)算同屬同一個(gè)檔案系統(tǒng)的檔案
  L:計(jì)算所有的檔案大小
  常用命令:du -ah

舉例操作如下圖所示:



3、statfs結(jié)構(gòu)及函數(shù)

  之前在看APUE時(shí)候,在第四章文件和目錄中,講到了獲取文件信息的stat結(jié)構(gòu),通過stat結(jié)構(gòu)可以獲文件的大小,創(chuàng)建時(shí)間,修改時(shí)間,用戶id,組id等等。man上stat結(jié)構(gòu)及操作函數(shù)如下圖所示:



今天主要總結(jié)學(xué)習(xí)一下獲取硬盤信息的statfs結(jié)構(gòu),通過statfs結(jié)構(gòu)的信息計(jì)算出路徑所在的磁盤使用情況。man上關(guān)于statfs介紹如下所示:



statfs結(jié)構(gòu)的中文意思如下所示:

復(fù)制代碼 代碼如下:

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é)點(diǎn)總數(shù)*/
   long f_ffree; /* 可用文件結(jié)點(diǎn)數(shù)*/
   fsid_t f_fsid; /* 文件系統(tǒng)標(biāo)識(shí)*/
   long f_namelen; /* 文件名的最大長度*/
 };



statfs結(jié)構(gòu)中可用空間塊數(shù)有兩種f_bfree和 f_bavail,前者是硬盤所有剩余空間,后者為非root用戶剩余空間,ext3文件系統(tǒng)給root用戶分有5%的獨(dú)享空間,所以這里是不同的地方。這里要強(qiáng)調(diào)的是每塊的大小一般是4K。因此,要實(shí)現(xiàn)與df結(jié)果一致的就得在獲得塊數(shù)上乘以4,這樣已用、可用、總塊數(shù)就可以實(shí)現(xiàn)。
測試程序如下所示:

復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <sys/statfs.h>
#include <sys/vfs.h>
#include <errno.h>

int main(int argc, char *argv[])
{
    struct statfs disk_info;
    char *path = "/home/";
    int ret = 0;
    if (argc == 2)
    {
      path = argv[1];
    }
    if (ret == statfs(path, &disk_info) == -1)
    {
      fprintf(stderr, "Failed to get file disk infomation,\
          errno:%u, reason:%s\n", errno, strerror(errno));
      return -1;
    }
    long long total_size = disk_info.f_blocks * disk_info.f_bsize;
    long long available_size = disk_info.f_bavail * disk_info.f_bsize;
    long long free_size = disk_info.f_bfree * disk_info.f_bsize;
    //輸出每個(gè)塊的長度,linux下內(nèi)存塊為4KB
    printf("block size: %ld bytes\n", disk_info.f_bsize);
    //輸出塊個(gè)數(shù)
    printf("total data blocks: %ld \n", disk_info.f_blocks);
    //輸出path所在磁盤的大小
    printf("total file disk size: %d MB\n",total_size >> 20);
    //輸出非root用戶可以用的磁盤空間大小
    printf("avaiable size: %d MB\n",available_size >> 20);
    //輸出硬盤的所有剩余空間
    printf("free size: %d MB\n",free_size >> 20);
    //輸出磁盤上文件節(jié)點(diǎn)個(gè)數(shù)
    printf("total file nodes: %ld\n", disk_info.f_files);
    //輸出可用文件節(jié)點(diǎn)個(gè)數(shù)
    printf("free file nodes: %ld\n", disk_info.f_ffree);
    //輸出文件名最大長度
    printf("maxinum length of file name: %ld\n", disk_info.f_namelen);
    return 0;
}


測試結(jié)果如下所示:

相關(guān)文章

  • Linux定時(shí)任務(wù)Crontab的使用方法

    Linux定時(shí)任務(wù)Crontab的使用方法

    這篇文章主要為大家詳細(xì)介紹了Linux定時(shí)任務(wù)Crontab的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 在Linux中使用Vundle管理Vim插件的方法

    在Linux中使用Vundle管理Vim插件的方法

    Vim缺乏默認(rèn)的插件管理器,所有插件的文件都散布在~/.vim下的幾個(gè)文件夾中,插件的安裝與更新與刪除都需要自己手動(dòng)來,既麻煩費(fèi)事,又可能出現(xiàn)錯(cuò)誤。下面這篇文章主要給大家介紹了關(guān)于在Linux中使用Vundle管理Vim插件的方法,需要的朋友可以參考下。
    2018-04-04
  • Linux通過設(shè)備號找到設(shè)備的方法

    Linux通過設(shè)備號找到設(shè)備的方法

    所有的Linux設(shè)備文件均位于/dev目錄下,是根(/)文件系統(tǒng)的一個(gè)組成部分,因?yàn)檫@些設(shè)備文件在操作系統(tǒng)啟動(dòng)過程中必須可以使用。接下來通過本文給大家介紹Linux通過設(shè)備號找到設(shè)備的方法,感興趣的朋友一起看看吧
    2018-07-07
  • Linux mysql-5.6如何實(shí)現(xiàn)重置root密碼

    Linux mysql-5.6如何實(shí)現(xiàn)重置root密碼

    這篇文章主要介紹了Linux mysql-5.6如何實(shí)現(xiàn)重置root密碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 實(shí)例詳解Linux下的Make命令

    實(shí)例詳解Linux下的Make命令

    眾所周知在Linux系統(tǒng)下的make 命令是系統(tǒng)管理員和程序員用的最頻繁的命令之一。管理員用它通過命令行來編譯和安裝很多開源的工具,程序員用它來管理他們大型復(fù)雜的項(xiàng)目編譯問題。下面這篇文章我們將用一些實(shí)例來討論make命令背后的工作機(jī)制。有需要的朋友們可以看看。
    2016-12-12
  • CentOS MySQL 5.7編譯安裝步驟詳細(xì)說明

    CentOS MySQL 5.7編譯安裝步驟詳細(xì)說明

    這篇文章主要介紹了CentOS MySQL 5.7編譯安裝詳細(xì)介紹的相關(guān)資料,這里對安裝步驟進(jìn)行了詳細(xì)介紹,需要的朋友可以參考下
    2016-12-12
  • SSH 登錄工具常用命令

    SSH 登錄工具常用命令

    既然申請了國外的主機(jī),那么SSH登錄工具肯定是必不可少的,這里羅列一些常用的SSH命令,以備查用。
    2009-02-02
  • Centos6 網(wǎng)絡(luò)配置的實(shí)例詳解

    Centos6 網(wǎng)絡(luò)配置的實(shí)例詳解

    這篇文章主要介紹了Centos6 網(wǎng)絡(luò)配置的實(shí)例詳解的相關(guān)資料,希望通過本文大家能夠掌握配置網(wǎng)絡(luò)的知識(shí),需要的朋友可以參考下
    2017-09-09
  • 在linux下玩轉(zhuǎn)帶有超時(shí)時(shí)間的connect函數(shù)

    在linux下玩轉(zhuǎn)帶有超時(shí)時(shí)間的connect函數(shù)

    今天小編就為大家分享一篇關(guān)于在linux下玩轉(zhuǎn)帶有超時(shí)時(shí)間的connect函數(shù),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • 從Windows到Linux的三種文件傳輸實(shí)現(xiàn)方式

    從Windows到Linux的三種文件傳輸實(shí)現(xiàn)方式

    文章介紹了在跨平臺(tái)工作環(huán)境中將文件從Windows系統(tǒng)傳輸?shù)絃inux服務(wù)器的幾種方法,包括使用SCP命令、搭建Web服務(wù)和使用wget下載文件,每種方法都有其特點(diǎn),如安全性、速度、易用性和適用場景等
    2024-12-12

最新評論

绥中县| 兰坪| 台北县| 长沙市| 河北省| 河北省| 怀来县| 西安市| 共和县| 罗甸县| 河北省| 庆元县| 崇阳县| 兴文县| 平度市| 通河县| 华宁县| 开平市| 普兰县| 民勤县| 神农架林区| 太白县| 延川县| 五台县| 兴化市| 金乡县| 江孜县| 吉木萨尔县| 专栏| 郧西县| 济南市| 汤阴县| 安陆市| 丽江市| 永嘉县| 濮阳县| 天柱县| 宿迁市| 汉中市| 临猗县| 虞城县|