公众号:程序员小饭
IP属地:江苏
static inline int do_rename(const char * oldname, const char * newname)
{
int error = 0;
struct dentry * old_dir, * new_dir;
struct dentry * old_dentry, *new_dentry;
struct dentry * trap;
struct nameidata oldnd, newnd;
error = path_lookup(oldname, LOOKUP_PARENT, &oldnd);
if (error)
goto exit;
error = path_lookup(newname, LOOKUP_PARENT, &newnd);
if (error)
goto exit1;
error = -EXDEV;
if (oldnd.mnt != newnd.mnt)
goto exit2;
……
}
由rename的内核系统调用函数实现可知,是不能跨文件系统的
linux上文件移动的坑:rename函数1、问题背景 开发了一个文件迁移功能,将文件从机械盘迁移到固盘,提升文件读取速度。运维测试说没有效果,我花了近3个小时才定位到原因,在linux上c编程使用的rename函数...