版本:RT-Thread 2.1.0正式版
模块:DFS
文件:....../components/dfs/src/dfs_fs.c
代码:
int df(const char *path)
{
int result;
long long cap;
struct statfs buffer;
result = dfs_statfs(path ? path : RT_NULL, &buffer);
if (result != 0)
{
rt_kprintf("dfs_statfs failed.
");
return -1;
}
cap = buffer.f_bsize * buffer.f_bfree / 1024;
rt_kprintf("disk free: %d KB [ %d block, %d bytes per block ]
",
(unsigned long)cap, buffer.f_bfree, buffer.f_bsize);
return 0;
}
其中cap = buffer.f_bsize * buffer.f_bfree / 1024;
存在溢出的可能,可改为cap = ((long long)buffer.f_bsize) * buffer.f_bfree / 1024;