タイトルにあるように、Cプログラム内でボリュームの空き領域を取得するにはどうすればよいですか?私はsystem()のようなトリックを使用していません、それらはうまく機能しません。(なぜですか?まあ、私はすでにそれを試しました!)
dfのようなものが必要ですが、残念ながら標準ライブラリには何も見つかりませんでした。
どうもありがとうございます。
タイトルにあるように、Cプログラム内でボリュームの空き領域を取得するにはどうすればよいですか?私はsystem()のようなトリックを使用していません、それらはうまく機能しません。(なぜですか?まあ、私はすでにそれを試しました!)
dfのようなものが必要ですが、残念ながら標準ライブラリには何も見つかりませんでした。
どうもありがとうございます。
最新の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()関数が含まれています。
うん!解決しました!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;