ディスクの空き容量を調べる

C言語を使ってディスクの空き容量を調べるには,statvfsを使う.Solarisで動作確認済み.

#include <stdio.h>
#include <sys/statvfs.h>
#include <sys/types.h>

main(){
  struct statvfs buf;
  statvfs(".",&buf);
  printf("frsize(byte/block): %lu\n",buf.f_frsize); /* バイト/ブロック */
  printf("fblocks(block): %lu\n",buf.f_blocks); /* 総ブロック数 */
  printf("bavail(block): %lu\n",buf.f_bavail); /* 使用可能ブロック数 */
  printf("-------------------------\n");
  printf("available(kbyte): %4.0f\n",(float)buf.f_frsize*buf.f_bavail/1024);
  printf("all(kbyte): %4.0f\n",(float)buf.f_frsize*buf.f_blocks/1024);
  printf("free %4.1f%%\n",100-((float)buf.f_bfree/buf.f_blocks*100));
}