|
本帖最后由 s200661524 于 2013-2-7 18:44 编辑
研究rt的虚拟文件系统比较长时间,感觉精悍小巧而功能强大。在dfs系统中dfs_file.c文件
函数int dfs_file_rename(const char *oldpath, const char *newpath)
........
........
oldfullpath = dfs_normalize_path(RT_NULL, oldpath);
if (oldfullpath == RT_NULL)
{
result = -DFS_STATUS_ENOENT;
goto __exit;
}
newfullpath = dfs_normalize_path(RT_NULL, newpath);
if (newfullpath == RT_NULL)
{
result = -DFS_STATUS_ENOENT;
goto __exit;
}
.......
.......
__exit:
rt_free(oldfullpath);
rt_free(newfullpath);
/* not at same file system, return EXDEV */
return result;
...................................................................................................
dfs_normalize_path返回空的时,在rt_free里面会产生警告。
不知道这是不是一个小bug?个人感觉如果改成以下会好点
........
........
oldfullpath = dfs_normalize_path(RT_NULL, oldpath);
if (oldfullpath == RT_NULL)
{
result = -DFS_STATUS_ENOENT;
goto __exit2;
}
newfullpath = dfs_normalize_path(RT_NULL, newpath);
if (newfullpath == RT_NULL)
{
result = -DFS_STATUS_ENOENT;
goto __exit1;
}
.......
.......
rt_free(newfullpath);
__exit1:
rt_free(oldfullpath);
__exit2:
/* not at same file system, return EXDEV */
return result;
不知道分析得对不对。
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|