gpt4 book ai didi

c - c中的重命名代码有错误

转载 作者:行者123 更新时间:2023-11-30 19:39:19 26 4
gpt4 key购买 nike

我想使用 C 编码将文件从一个目录移动到另一个目录。

我搜索并找到 rename();函数,但运行时不起作用并出现错误:

我的代码:

 #include <stdio.h>

int main() {

if(rename("/root/tmpfile.php", "/home/check-tmp.php"))

perror( NULL );

}

代码编译良好,但运行此代码时显示此错误:

Invalid cross-device link

如何在不使用 System for fopen 的情况下将文件从一个目录移动到另一个目录?

Aslo,我找到了很多代码和方法来做到这一点,但并不适用于所有代码。

请告诉我一个方法并确保它有效

谢谢。

最佳答案

“重命名”行为的许多方面本质上与平台相关:重命名操作可能无法将文件从一个文件系统移动到另一个文件系统,它可能不是原子的,并且如果文件目标抽象路径名已存在。

也就是说,您的系统不支持跨不同分区重命名文件(您的根分区和主分区不同。)

所以解决方案是当失败时,将文件复制到目的地并删除原始文件。

关于c - c中的重命名代码有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36678828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com