c – 如何在Posix系统中获得总可用磁盘空间?
发布时间:2020-12-13 19:07:36 所属栏目:Linux 来源:网络整理
导读:我正在编写一个跨平台的应用程序,我需要总的可用磁盘空间.对于posix系统(Linux和Macos),我使用的是statvfs.我创建了这个C方法: long OSSpecificPosix::getFreeDiskSpace(const char* absoluteFilePath) { struct statvfs buf; if (!statvfs(absoluteFilePat
我正在编写一个跨平台的应用程序,我需要总的可用磁盘空间.对于posix系统(Linux和Macos),我使用的是statvfs.我创建了这个C方法:
不幸的是,我得到了一些我无法理解的奇怪价值观.例如: 这些值是以位,字节还是其他形式存在的?我在这里读取stackoverflow那些应该是字节,但后来我得到的总字节数是免费的: 我是否对代码或其他任何内容做错了? 最佳答案
我不太清楚OSX是否足以预测这绝对是答案,但f_blocks和f_bfree实际上是指“基本块”或“片段”(大小为buf.f_frsize字节),而不是“文件系统块大小” (这是buf.f_bsize字节):
http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/statvfs.h.html f_bsize只是提示I / O操作的首选大小,它不一定与文件系统的划分方式有关. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |