perfstat_disk_total インターフェース

perfstat_disk_total インターフェースは、 libperfstat.h ファイルに定義されている perfstat_disk_total_t 構造体を戻します。

perfstat_disk_total_t 構造から選択されたフィールドには、以下のものがあります。
項目 ディスクリプター
number ディスクの数
size 合計ディスク・サイズ (MB)
free 合計空きディスク・スペース (MB)
xfers ディスクとの間の合計転送 (KB 単位)
ディスクとの間で読み書きされたブロックの数など、その他のいくつかのディスク関連メトリックも返されます。 完全なリストについては、Files Referencelibperfstat.hヘッダーファイルのperfstat_disk_total_tセクションを参照のこと。
以下のコードは、 perfstat_disk_total の使用方法の例を示しています。
#include <stdio.h>
#include <libperfstat.h>

int main(int argc, char* argv[]) {
    perfstat_disk_total_t dinfo;
    int rc;
    rc = perfstat_disk_total(NULL, &dinfo, sizeof(perfstat_disk_total_t), 1);
    if (rc != 1)
    {
	perror("perfstat_disk_total");
        exit(-1);
    }  
    perfstat_disk_total(NULL, &dinfo, sizeof(perfstat_disk_total_t), 1);
    printf("Total disk statistics\n");
    printf("---------------------\n");
    printf("number of  disks         : %d\n",   dinfo.number);
    printf("total disk space         : %llu\n", dinfo.size);
    printf("total free space         : %llu\n", dinfo.free);
    printf("number of transfers      : %llu\n", dinfo.xfers);
    printf("number of blocks written : %llu\n", dinfo.wblks);
    printf("number of blocks read    : %llu\n", dinfo.rblks);
}
このプログラムは、次のような出力を生成します。
Total disk statistics
---------------------
number of  disks         : 3
total disk space         : 4296
total free space         : 2912
number of transfers      : 77759
number of blocks written : 738016
number of blocks read    : 363120
上記のプログラムは、 iostat の 動作をエミュレートし、 perfstat_disk_total の使用方法も示します。