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

时间:2012-05-24 21:53:50

标签: c++ linux move

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

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

我还有其他选择吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

如果您想编写跨平台所需的内容而不依赖于系统特定的实现 - 您必须坚持标准。虽然较新的C ++ 11标准可能允许其他功能来帮助您,但一个简单的解决方案就是实现从fstream到另一个{{1}}的纯文本。