0

タイトルにあるように、Cプログラム内でボリュームの空き領域を取得するにはどうすればよいですか?私はsystem()のようなトリックを使用していません、それらはうまく機能しません。(なぜですか?まあ、私はすでにそれを試しました!)

dfのようなものが必要ですが、残念ながら標準ライブラリには何も見つかりませんでした。

どうもありがとうございます。

4

2 に答える 2

5

最新のPOSIX(Linux、OS Xなど)を想定すると、statvfsを使用できます。

struct statvfs st;
statvfs("/file/on/a/volume.ext", &st);
unsigned long free_space = st.f_bfree * st.f_frsize;

Windowsの場合、WinAPIにはGetDiskFreeSpaceEx()関数が含まれています。

于 2012-10-02T07:33:34.610 に答える
1

うん!解決しました!H2CO3ありがとうございます!st.f_bsizeの代わりにst.frsizeを使用してください。これですべてが機能します!ありがとうございました!

これは動作するコードです:

#include <sys/statvfs.h>
struct statvfs st;
statvfs("/file/on/a/volume.ext", &st);
unsigned long free_space = st.f_bfree * st.f_frsize;
于 2012-10-03T11:22:05.930 に答える