在 Linux 中使用 C++ 跨卷移动文件

moving a file across volumes with C++ in Linux

本文关键字:移动 文件 C++ Linux      更新时间:2023-10-16

我正在尝试编写一些在所有平台上跨卷移动文件的东西。目前,我使用重命名(...)函数来移动文件,这甚至可以跨Windows上的卷/驱动器。但是,在 Linux 上,我收到 EXDEV 错误(通过 strace),终止了我的应用程序:(

看来我可能需要通过系统(...)调用"mv",但这似乎很笨拙。那个,或者将 boost 集成到我的应用程序中,这不是一个微不足道的操作。

还有其他选择吗?

谢谢你的时间。

如果你想

写一些需要跨平台的东西,而不是依赖于特定于系统的实现 - 你必须坚持标准。虽然较新的 C++11 标准可能允许其他功能来帮助您解决这个问题,但一个微不足道的解决方案是只实现从一个fstream到另一个的普通副本。