• ベストアンサー

UNIX C でディスクサイズの取得がしたい

現在、OS:Solaris8 言語:Cでプログラミングしているんですが、 ハードディスクの容量及び現在使用されている容量を取得する関数(ライブラリ?)ってあるんでしょうか? 初めての投稿なので勝手が分からないのですが、質問に不備などございましたらご指摘ください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Fooky
  • ベストアンサー率71% (59/82)
回答No.2

statfs()とfstatfs()というシステムコールが お望みのものに近いと思います。 statfs()は容量を知りたいファイルシステム上にある ファイル名を指定することで、そのファイルシステムの容量等の 統計情報が取れます。 fstatfs()は既にオープンされているファイルディスクリプタを 使って同じ情報を得ます。 ご質問で「ハードディスクの容量」とありますが、これらの システムコールで分かるのは、あくまでファイルシステム (パーティション)の容量です。 SunOS4の情報ですが、多分、Solarisでもあるんじゃないでしょうか? sys/vfs.hで宣言されています。

ken610
質問者

お礼

回答ありがとうございます。 manで調べようと思ったのですがエントリにありませんでした。 sys/vfs.hがあったのでそれを調べてみます。

その他の回答 (2)

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.3

> manで調べようと思ったのですがエントリにありませんでした。 AnswerBook に statvfs() の説明がありますので、参考まで。

参考URL:
http://docs.sun.com:80/ab2/coll.40.6/REFMAN2/@Ab2PageView/79416?Ab2Lang=ja&Ab2Enc=shift_jis
ken610
質問者

お礼

ありがとうございました。参考になりました。

  • u_kappa
  • ベストアンサー率30% (6/20)
回答No.1

ご存知かも知れませんが、UNIXコマンドでは"df"があります。 詳しくはマニュアルを参照ください。 Cでこのコマンドを実行することも出来ると思いますが少々面倒ですしね。 関数であるかどうかは調べてみます。

ken610
質問者

お礼

回答ありがとうございます。 そうなんですよね、"df"を実行することも考えたんですが・・・ 面倒なことと処理時間がどうなんだろうと思いまして。 "df"での実装を試してみます。

関連するQ&A