如何在C程序中获得卷的可用空间?

Mc1*_*28k 0 c filesystems volume

正如标题所说,如何在C程序中获得卷的可用空间?我没有使用像system()这样的技巧,它们不能正常工作.(为什么?好吧,我已经试过了!)

我需要像df这样的东西,不幸的是我没有在标准库中找到任何东西.

非常感谢你.

小智 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;
Run Code Online (Sandbox Code Playgroud)

对于Windows,WinAPI包含GetDiskFreeSpaceEx()函数.