看起来这个问题很简单,但我找不到在没有平台依赖的情况下在 C 中复制文件的明确解决方案。
我在我的开源项目中使用了 system() 调用来创建目录、复制文件和运行外部程序。它在 Mac OS X 和其他 Unix-ish 系统中运行良好,但在 Windows 上失败。问题是:
system( "cp a.txt destination/b.txt" );
- Windows 使用反斜杠作为路径分隔符。(与 Unix-ish 中的斜杠相比)
- Windows 对内部复制命令使用“复制”。(与 Unix 中的 cp 相比)
如何编写没有依赖关系的复制代码?
(其实,我写了宏来解决这个问题,但它并不酷。http ://code.google.com/p/npk/source/browse/trunk/npk/cli/tests/testutil.h,L22-56)