c - 如何在 C 中为启用了动态数据压缩的 UBIFS 文件系统检索正确的文件系统指标?
问题描述
语境
我正在使用启用了动态数据压缩的 UBIFS 文件系统。我需要在 C 代码中获取正确的文件系统指标(总、已用、可用空间)。
尝试了什么
我使用statvfs
call 成功检索了指标,但注意到返回的值好像数据从未压缩过。在sync(8)
从命令行调用并再次调用 C 代码后,返回了正确的值,因此在 C 代码中我包含了对sync(2)
right before的调用statvfs
。再次调用修改后的 C 代码仍会返回带有值的指标,就好像数据未压缩一样。然后我之前尝试进行系统调用system("sync")
,statvfs
但仍然返回了不正确的度量值。只有在等待 10 秒或通过显式sync(8)
调用后,返回的文件系统指标才是正确的。
问题
sync(2)
1)为什么之前调用或system("sync")
在C代码中调用statvfs
和sync(8)
从命令行调用之间存在这种差异?
2) 如何在 C 代码中将挂起/缓存的数据提交到磁盘,以便后续statvfs
调用返回正确的文件系统指标?
解决方案
推荐阅读
- android - 在当前活动中包含的外部布局中传递两个或多个变量
- bash - bash中的嵌套括号是什么意思?
- php - 未分配给数组的值
- android - 如何将值保存在编辑文本框中
- flutter - Flutter:按下按钮时只能在初始化程序中访问静态成员
- mongodb - 需要在mongodb中查找动态多个嵌套集合的查询
- android - 未解决的类:主要活动
- android - 使用 Volley 在 kotlin 中创建 Reqeust 类
- javascript - 使用 Node.js 启动带有参数的浏览器窗口
- sql-server - “一个 SQL server Express 2008 实例是 sqlserver.exe 可执行文件的副本”是什么意思?