2

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

看来我可能需要通过 system(...) 调用“mv”,但这似乎很hacky。那个,或者将 boost 集成到我的应用程序中,这不是一个简单的操作。

我还有其他选择吗?

感谢您的时间。

4

1 回答 1

1

如果你想写一些需要跨平台的东西,而不是依赖于系统特定的实现——你必须坚持标准。虽然较新的 C++11 标准可能允许附加功能来帮助您,但一个简单的解决方案是实现一个从一个fstream到另一个的普通副本。

于 2012-05-24T22:08:35.547 回答